- CSRF:跨站请求伪造
登录受信任网站A,并在本地生成Cookie,在不登出A的情况下,访问危险网站B。其实是利用了网站A的漏洞
如何防御:
- Token 验证(用的最多)
- 隐藏令牌:把token隐藏在http的head头中
- Referer验证:Referer指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截
-
XSS:跨域脚本攻击
- 原理:不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、hmtl代码块等)
- 后果:盗用Cookie破坏页面的正常结构,插入广告等恶意内容D-doss攻击
- 防范:编码、过滤、校正
- 编码:对用户输入的数据进行HTML Entity 编码。把字符转换成 转义字符
- 过滤:移除用户输入的和事件相关的属性
- 校正:避免直接对HTML Entity进行解码。使用DOM Parse转换,校正不配对的DOM标签
- 区别:
- CSRF是跨站请求伪造; XSS是跨域脚本攻击。
- CSRF需要用户先登录网站A,获取cookie; XSS不需要登录。
- CSRF是利用网站A本身的漏洞,去请求网站A的api; XSS是向网站A注入JS代码,然后执行JS里的代码,篡改网站A的内容。(XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。你可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END