跨站请求伪造

跨站请求伪造,即CSRF,攻击者通过伪造来自受信任用户的请求,达到增加、删除、篡改网站内容的目的。

可带来的危害:

  1. 攻击者冒充用户/管理员,伪造请求,进行篡改、转帐、改密码、发邮件等非法操作。

修复建议:

  1. 过滤用户输入,不允许发布含有站内操作URL的链接;
  2. 改良站内 API 的设计,关键操作使用验证码,只接受 POST 请求,GET请求应该只浏览而不改变服务器端资源;
  3. 对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field);
  4. 在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。

服务端的防御:

1.验证HTTP Referer字段。

2.请求地址中添加token并验证(token不放在cookie中,放在http请求参数中,服务端对其进行验证)

3.将token加入http头属性中,避免了token出现在浏览器中,被泄露。

客户端防御:

为了配合服务端对token的验证,那么客户端也需要在访问时生成token,这是利用 js 来给 html 中的链接和表单请求地址附加 csrftoken 代码,其中已定义 token 为全局变量,其值可以从 session 中得到。

results matching ""

    No results matching ""