Flask项目(新闻网站)—— csrf 问题解决

想要解决问题,就得先了解它

由于我们此项目采用的是工厂模式创建的app,所以我们需要了解什么是CSRF

CSRF

CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。

CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。
包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…

造成的问题:个人隐私泄露以及财产安全。

如需了解更多,请点击 更多详情

代码实现

进入info目录的init.py,找到create_app方法,并添加如下代码

@app.after_request
    def set_csrf(response):
        """
        设置csrftoken的值
        :return: 
        """
        csrf_token = generate_csrf()
        response.set_cookie("csrf_token",csrf_token)
        # print(1111)
        return response

main.js,找到请求方法为‘post’的,并添加如下代码

headers: {'X-CSRFToken': getCookie('csrf_token')}, // 在请求头中带上csrf_token

注:
@app.after_request :在响应(response)之前做出响应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值