这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天,今天学习的内容是Web开发的安全之旅,将学习的内容记录下来,以便时时巩固记忆。
主要学习内容
- 攻击篇-----假如你是一个hacker
- 防御篇-----假如你是一个开发者
XSS
XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。
作为一种HTML注入攻击,XSS攻击的核心思想就是在HTML页面中注入恶意代码,而XSS采用的注入方式是非常巧妙的。在XSS攻击中,一般有三个角色参与:攻击者、目标服务器、受害者的浏览器。
XSS的一些特点:
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
CSRF
CSRF(Cross-Site Request Forgery) ,跟XSS漏洞攻击一样,存在巨大的危害性。
攻击:
你可以这么来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
防御:
- 验证HTTP Referer字段
- 在请求地址中添加token并验证(Anti-CSRF token)
- 在HTTP头中自定义属性并验证
DOS
拒绝服务攻击即是攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。
攻击:通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
DDOS
攻击:
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。
防御:
- 采用高性能的网络设备
- 尽量避免NAT的使用
- 充足的网络带宽保证