跳到主内容

前端安全知识点

XSS(Cross Site Scripting)跨站脚本攻击

xss 有三种类型,分别是存储型,反射型,DOM 型

类型存储区插入点
存储型数据库HTML
反射型URLHTML
DOM 型后端数据库/前端存储/URLJavascript

存储型 XSS

存储型主要是会把恶意代码存储在数据库中,用户访问从数据库读取恶意代码,然后插入到页面中。常见于留言板,论坛等。

反射型

反射型主要通过访问 url 携带参数,经过服务器路由或客户端路由跳转到新的页面,如果这时候把参数直接输出到页面,就会直接执行恶意代码

反射型和存储型的主要区别是有没有一个存储恶意代码的介质,一个是存储在数据库,一个是直接输出到页面

DOM 型

DOM 型基于文档对象模型,属于反射型的一种。一般是 html 代码里面有一些恶意的 script 代码直接在浏览器解析执行

XSS 如何防御防御

  1. 转义 HTML,对于输入的 HTML 代码,防御的方式是把输入的 HTML 代码转义,比如把<script> 转义成 &lt;script&gt;

  2. 使用内容安全策略(CSP)

什么 HTTP 劫持

比如某一天你通过 PC,移动端打开浏览器,输入 www.1024nav.com 想要去查看前端面试指南,当输入完地址按下回车键的时候,发现跳转过去的页面是一个澳门赌博网址(广告)。😹 这个现象就是 HTTP 劫持

HTTP 劫持的原理

通过监听客户端与服务器之间数据传输,当满足特定条件(比如监听到访问 HTML 文件)就可以做一个转发,或者在返回的数据报文里插入特定的代码(广告),返回给用户输出到浏览器

HTTP 劫持的方式有哪些

HTTP 劫持有 DNS 劫持和内容劫持

  • DNS 劫持

通过浏览器,路由,DNS 运营商进行请求重定向到其他网址

  • 内容劫持

拦截请求响应的 HTML 数据,对 HTML 内容进行修改,插入 js 代码或者 iframe 代码

如何防御

  1. 开启 HTTPS,HTTPS 是在 HTTP 基础上加入 TLS 保护,数据传输是加密的,无法劫持
  2. 使用信誉良好的 DNS 厂商,手机,浏览器厂商

参考资料

https://zhuanlan.zhihu.com/p/46592479