用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1698|回复: 1
收起左侧

跨站请求伪造(CSRF),这样处理行吗?

[复制链接]
发表于 2017-3-18 10:43:21 | 显示全部楼层 |阅读模式
本帖最后由 Martix 于 2017-3-18 10:44 编辑

QQ截图20170318104006.jpg









PHP复制代码
public function csrf_show_error()       {      
                //ajax 请求判断
                if(( ! empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest')){
                        header('Content-type:text/json');
                        echo json_encode(['status'=>-1,'message'=>'网络异常']);exit;
                }
                // target='blank'
                $error = "网络异常,点击<a href=".$_SERVER['HTTP_REFERER'].">此处返回</a>";
                show_error($error, 403);
        }
复制代码

在原来的基础上修改下提示,判断是不是ajax请求,保证返回正常的响应.




74766_716295_410437.gif
发表于 2017-3-18 21:02:33 | 显示全部楼层
防 CSRF 攻击,最简单最暴力的方式就是验证 referrer

本版积分规则