booktest25-csrf

    技术2025-08-31  14

    csrf能够成功的条件:

    1).登陆正常网站之后,浏览器保存sessionId,没有退出

    2).不小心访问了另外一个网站,并且点击了页面上的按钮

    防御的原理:

    1)渲染模板文件时在页面生成一个名字叫做csrfmiddlewaretoken的隐藏域

    2)服务器交给浏览器保存一个名字为csrftoken的Cookie信息

    3)提交表单时,两个值都会发给服务器,服务器进行比对时,如果一样,csrf验证通过,否则失败

    1.login.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登陆页面</title> </head> <body> <form method="post" action="/login_check"> 用户名:<input type="text" name="username" value="{{username}}"/><br/> 密码:<input type="password" name="password"/><br/> <input type="checkbox" name="remember"/>记住用户名<br/> <input type="submit" value="登陆"> </form> </body> </html>

     2.当输入用户名和密码后,提交时候显示403 Forbidden

    3.解决办法,在post提交表单里面增加标签{% csrf_token %}

    Processed: 0.013, SQL: 9