# WEB开发的安全之旅(攻击篇) | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第7天
两个角度看WEB安全问题:攻击与防御
攻击篇
1 跨站脚本攻击 Cross-Site Scripting (XSS)
恶意攻击者往Web页面中插入了恶意Script代码,用户浏览该页面时,嵌入Web里面的代码被执行,达到恶意攻击用户的目的。
XSS利用网页对用户提交信息的盲目信任像服务器传输脚本木马攻击。攻击者可以利用漏洞在网站上注入恶意的客户端代码。若受害者运行这些恶意代码,攻击者就可以突破网站的访问限制并冒充受害者。
-
XSS的一些特点:
通常难以从UI上感知(暗地执行脚本)
窃取用户信息(cookie/token)
绘制UI(例如弹窗),诱骗用户点击、填写表单
- XSS分为:存储型XSS(Stored XSS)、反射型XSS(Reflected XSS)、基于DOM的XSS(DOM-based XSS)、基于Mutation的XSS(Mutation-based XSS)
2 跨站伪造请求 Cross-site request forgery (CSRF)
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。常用于盗取账号、转账、发送虚假消息等。攻击者利用网站对请求的验证漏洞而实现这样的攻击行为,网站能够确认请求来源于用户的浏览器,却不能验证请求是否源于用户的真实意愿下的操作行为。
跨站伪造请求CSRF最常见的是GET请求方式
除了GET请求,跨站伪造请求CSRF还有其他方式,攻击者可以构造任意形式的请求,只要构造了HTML表单即可。
3 注入攻击 Injection
- SQL Injection
在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行,从而导致数据库遭到破坏(被脱库、被删除、甚至整个服务器权限陷)。
- Injection 不局限于SQL
个人体会与总结
通过本节的学习,我认识到了WEB开发过程中各种可能遇到的攻击形式,要持续学习WEB安全知识,要对安全重视!