最近在培训包含在一些竞赛中,python结构方面的攻防需求呈现的越来越频频。
尽管python结构相关于Java、php等的广泛度还略低一点(当然现在的盛行程度现已越来越高了),可是咱们并不能够因此而忽视其的安全性。比如在一些赛事中就常用flask来命题等等,所以花时间学习python结构的开发与攻防关于web选手来说仍是一件比较重要的工作,所以编撰这篇文章,期望能够给一些想要快速入门的同学一点协助,一起也能共同进步。
如有过错的当地,还请各位师兄与同学指正。
依稀记得曾经用django + semantic ui + mongodb搭博客仍是大学一年级的时分,韶光仓促啊….
一、Django根底开发
曾经搭博客用的是1.8.2,还在机子上装着没卸,趁便拿过来用,当然新版别会修正许多bug,尽或许仍是要去学习新一些的版别,此篇权当入门篇。
1、下载装置与发动
# 下载django
pip install django==1.8.2 -i https://pypi.mirrors.ustc.edu.cn/simple/
# 创立文件夹并发动虚拟环境
virtualenv django_demo
cd django_demo
source bin/activate
# 创立寄存django文件的文件夹
mkdir learn_django
cd learn_django
# 创立项目
python django-admin.py startproject django_web
# 创立使用
python manage.py startapp django_app
# 修改django_web中的settings.py文件,将django_app参加到apps中
这样就完成了最根底的建立
运转服务看一下
2、Django结构中的MVC与MTV
MVC是众所周知的形式:model(模型)、view(视图)、controller(控制器)
用户在页面输入url,转交给url控制器,然后依据url匹配相应的视图函数,viwe会去到models取数据,然后models在数据库中获得数据后回来给视图,视图把要展现的数据回来给模版,然后就输出到页面上。
Django也是一个MVC结构,可是在Django中,控制器承受用户输入的部分由结构自行处理,所以django愈加重视的是 模型(model)、view(视图)、templates(模版),也便是MTV模型。
恳求一个url后,匹配相应的view区,view去models(一个保管数据的层级)查找咱们要的数据,然后将数据装载到templates层,然后呈献给咱们。
两者很像,能够说MTV依据MVC。
3、静态Web开发
创立模版层
当然,要是只想让简略的数据显现在Web页面中,不需求创立模版,直接在views函数中相应回去就能够了,可是仍是正规化一点。
在learn_django中创立templates文件夹(假如是IDE创立的django项目会主动创立),这便是咱们的模版文件夹,来增加一个可视化的模版index.html
html>
head>
title>Django Learningtitle>
head>
body>
h1>Hellow,Django!h1>>
body>
html>
创立视图层
视图层一般来说是一个视图函数,与url进行匹配回来传入对应的Web页面
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request,'index.html')
创立url层
创立url层,依据传入的url来找到咱们的视图函数,从而将烘托的模版回来
from django.conf.urls import include, url
from django.contrib import admin
from django_app.views import index
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
# 用正则去对url进行匹配,然后将视图函数匹配给相应的url
url(r'^index/',index),
运转服务,默许在8000端口
python manage.py runserver
到这一步有一部分同学会有一些小问题,那便是并不能回来模版,或许Windows和linux状况各不相同,linux需求把templates目录放在app目录下才能够找到。
原因就在于settings.py中模版途径设置问题,假如templates目录是放在项目根目录,在settings中将templates途径参加就能够了。
4、动态web开发
前边是说静态页面,假如需求完成动态,那就不得不说与数据库存储的交互问题,需求对models进行对应的编写来获得数据。
mysql + django
装置对应的数据库接口驱动,这儿大致有三种:mysqldb、pymysql、mysqlclient。
[1] [2] [3] [4] [5] [6] 黑客接单网
在探究Flask/Jinja2中的服务端模版注入Part1中,我开端的方针是找到文件的途径或许说是进行文件体系拜访。之前还无法达到这些方针,可是感谢朋友们在之前文章中的反应,现在我现已可以完成这些方针...
0x00 什么是CSRF CSRF(Cross-site request forgery跨站恳求假造,也被称为“One Click Attack”或许Session Riding,一般缩写为CSR...
XSS 跨站脚本(Cross-site scripting,一般简称为XSS)是一种网站运用程序的安全漏洞进犯,是代码注入的一种。它答应歹意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这...
几周前我对某个手机银行使用进行测验。这个app用了一个结构,这个结构能够混杂、加密app与服务器进行的TLS衔接。我用Frida截获了加密环节之前的明文恳求/呼应。我期望能够修正截获的API调用,然后...
此文由猪八戒SRC,代码审计小鲜肉“呆呆的骗子大婶”倾情贡献~欢迎勾搭! 一、 代码 审计指令注入 PHP自带的函数中供给了几个能够履行体系指令的函数,在web项目的开发中一般是不会用到的,但...
这是一个名叫ReBreakCaptcha的逻辑缝隙,而这个缝隙将答应你轻松地绕过网站所选用的GoogleReCaptcha v2验证码。 技能概览 早在2019年,我就开端研讨怎么才干绕过Google...