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 中国大陆许可协议进行许可。
分类:
标签:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步