前端安全
前端安全
月晕XSS(跨站脚本攻击)
XSS 攻击指的是跨站脚本攻击,是一种代码注入攻击。攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等
XSS 本质是因为网站没有对恶意代码进行过滤,浏览器不能分辨那些脚本是可信的,从而导致了恶意代码的执行
获取页面数据 & DOS 攻击 & 破坏页面结构 & 流量劫持
反射性 XSS
攻击者诱导用户访问一个带有恶意的 URL,服务端接受数据处理后,将代码发送给浏览器,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行
存储性 XSS
恶意脚本会存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回并执行
DOM-Based XSS
修改页面的 DOM 节点形成的 XSS
防御
- 静态网站 & 对插入 HTML 部分做充分的转义
- 使用 CSP ,CSP 的本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行,从而防止恶意代码的注入攻击。
- 对一些敏感信息进行保护,比如 cookie 使用 http-only,使得脚本无法获取。也可以使用验证码,避免脚本伪装成用户执行一些操作。
CSRF(跨站请求伪造)
CSRF 攻击指的是跨站请求伪造攻击,攻击者诱导用户进入第三方网站,保存了登录状态,攻击者就可以利用这个登录状态,绕过后台的用户验证,冒充用户向服务器执行一些操作。
本质利用 Cookie 会在同源请求中携带发送给服务器的特点,来实现用户的冒充
防御
- 进行同源检测
- 使用
- CSRF-TOKEN 进行验证
- 双 Cookie 进行双重验证
- Cookie 属性设置成 Samesite
中间人攻击
中间⼈ (Man-in-the-middle attack, MITM) 是指攻击者与通讯的两端分别创建独⽴的联系, 并交换其所收到的数据, 使通讯的两端认为他们正在通过⼀个私密的连接与对⽅直接对话, 但事实上整个会话都被攻击者完全控制。在中间⼈攻击中,攻击者可以拦截通讯双⽅的通话并插⼊新的内容。
劫持
DNS 劫持
- DNS 强制解析: 通过修改运营商的本地 DNS 记录,来引导⽤户流量到缓存服务器
- 302 跳转的⽅式: 通过监控⽹络出⼝的流量,分析判断哪些内容是可以进⾏劫持处理的,再对劫持的内存发起 302 跳转的回复,引导⽤户获取内容
HTTP 劫持
由于 http 明⽂传输,运营商会修改你的 http 响应内容(即加⼴告)
使用 https & 加密代理 & CSP 内容安全策略
前端网页劫持
- 跳转劫持:通常对比访问的 URL 是否是之前要访问的 URL,如果 URL 不一致,则记录上报。
- 注入型劫持
- 注入 JS:在正常页面注入劫持的 js 代码实现的劫持
- 注入 iframe:将正常页面嵌入 iframe 或者页面增加 iframe 页面
HTTPS 中的 TLS/SSL 加密详解
评论
隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果