纵使杯|

little小新

园龄:2年6个月粉丝:8关注:0

2024-07-09 22:33阅读: 12评论: 0推荐: 0

23、Django-CSRF跨站伪造请求攻击

 

配置:
1、在settings.py中确认MIDDLEWARE中 确保
-- django.middleware.csrf.CsrfViewMiddleware 打开
2、在模板中、form标签下添加如下标签:
-- {% csrf_token %} #这个就是页面中的暗号

 

案例

views.py
---------------------------------------------------------------------------------
#crsf攻击
def test_csrf(request):
if request.method == 'GET':
return render(request, 'test_csrf.html')
elif request.method == 'POST':
print(request.POST)
return HttpResponse('test_csrf in 测试 post')
-----------------------------------------------------------------------------------
test_csrf.html
------------------------------------------------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>crsf测试</title>
</head>
<body>
<form action="/apicsrf/" method="post">
{% csrf_token %}
<input type="text" name="username">
<input type="submit" name="提交">
</form>
</body>
</html>
-----------------------------------------------------------------------
urls.py
------------------------------------------------------
from django.contrib import admin
from django.urls import path
from midware import views
urlpatterns = [
path('apicsrf/', views.test_csrf)
]
------------------------------------------------------------------------

 

如果有些视图函数不需要比对csrf的暗号可以局部关掉

#在视图函数中添加装饰器
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
pass

 

本文作者:little小新

本文链接:https://www.cnblogs.com/littlecc/p/18192577

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   little小新  阅读(12)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起