浏览器中如何保存REST认证的Token, 防止CSRF攻击?
代言
代言 2016-11-07 14:28:53
[HTML讨论组]

在浏览器中需要使用Ajax访问REST API, Token保存在cookie或localstorage中是否可行,

会不会被窃取或者CSRF攻击?

如果使用JS读取来添加到请求中, 那么当第一次访问时, 如何带上Token?(根据有无Token判断用户身份来渲染首页).

刚刚接触前端没多久,Web安全方面不是很懂,请知道的朋友帮忙解答一下, 谢谢.

代言
代言

全部回复(1)
大家讲道理

CSRF的是利用了浏览器给域下的请求自动带上保存的cookie,因此服务器端单纯用cookie判断的话确实会有问题。


常见解决的方案:
1. 把token放在cookie/ls里,用js读取cookie中的token,放到ajax请求的参数中。服务器端用参数而非cookie读token。

2. 遵照HTTP规范,更新资源用POST,这样不能完全防范,但能提升CSRF攻击的成本,常见的img标签攻击会失效

3. 服务器端对请求的refer做判断,过滤跨域的敏感请求


建议以上几点都采用,能把CSRF攻击的门槛提高到相对比较安全的级别


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号