web安全: XSS 跨站攻击,XSRF 跨站请求伪造
常见的web 端攻击方式
XSS 跨站攻击
即Cross Site Script Execution(通常简写为XSS)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。XSRF 跨站请求伪造
(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
XSS 跨站攻击
场景
- 一个博客网站,我发表一篇文章,其中嵌入 ‘<script>’ 脚本
- 脚本内容:获取cookie,发送到我的服务器(服务器配合跨域)
- 发布这篇博客,有人查看他,我就轻松收割访问者的cookie
XSS 预防 - 替换特殊字符,如 ‘<’ 变为 ‘<’,‘>’ 变为 ‘>’;
- ‘<script>’ 变为 ‘ <script>’,直接显示,而不会作为脚本执行
- 前端要替换,后端也要替换,都做总不会错
XSRF攻击
场景
- 你正在购物看中了某个商品,商品id是100
- 付费接口是 xxx.com/pay?id=100,但没有任何验证
- 我是攻击者。我看中了一个商品,id是200
- 我想你的发送一封电子邮件,邮件标题很吸引人
- 但邮件正文隐藏着
- 你一查看邮件,就帮我购买了id是 200 的商品
XSRF 预防
- 使用post接口
- 增加验证,例如密码,短信验证码,指纹等