网站浏览排名,郑州网络推广厂家,珠海品牌网站制作,福州本地推广该内容主要整理关于 前端安全模块 的相关面试题#xff0c;其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 前端安全模块精选篇 1. 代码注入XSS如何攻击如何防御cookie 如何防范 XSS 攻击 2. 跨站请求伪造CSRF3. 浏览器同源策略 SOP4. 跨域资源共享 CORS5. 密码… 该内容主要整理关于 前端安全模块 的相关面试题其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 前端安全模块精选篇 1. 代码注入XSS如何攻击如何防御cookie 如何防范 XSS 攻击 2. 跨站请求伪造CSRF3. 浏览器同源策略 SOP4. 跨域资源共享 CORS5. 密码安全 1. 代码注入XSS 跨网站指令码英语Cross-site scripting通常简称为XSS是一种网站应用程式的安全漏洞攻击是代码注入的一种。它允许恶意使用者将程式码注入到网页上其他使用者在观看网页时就会受到影响。这类攻击通常包含了 HTML 以及使用者端脚本语言 XSS 分为三种反射型存储型和 DOM-based 如何攻击
XSS 通过修改 HTML 节点或者执行 JS代码来攻击网站。 例如通过 URL 获取某些参数
!-- http://www.domain.com?namescriptalert(1)/script --
div{{name}}/div 上述 URL 输入可能会将 HTML 改为 divscriptalert(1)/script/div 这样页面中就凭空多了一段可执行脚本。这种攻击类型是反射型攻击也可以说是 DOM-based 攻击 如何防御 最普遍的做法是转义输入输出的内容对于引号尖括号斜杠进行转义 function escape(str) {str str.replace(//g, amp;);str str.replace(//g, lt;);str str.replace(//g, gt;);str str.replace(//g, quto;);str str.replace(//g, ##39;);str str.replace(//g, ##96;);str str.replace(/\//g, ##x2F;);return str
}通过转义可以将攻击代码 scriptalert(1)/script 变成字符串 // - lt;scriptgt;alert(1)lt;##x2F;scriptgt;
escape(scriptalert(1)/script)对于显示富文本来说不能通过上面的办法来转义所有字符因为这样会把需要的格式也过滤掉。这种情况通常采用白名单过滤的办法当然也可以通过黑名单过滤但是考虑到需要过滤的标签和标签属性实在太多更加推荐使用白名单的方式 var xss require(xss);
var html xss(h1 idtitleXSS Demo/h1scriptalert(xss);/script);
// - h1XSS Demo/h1lt;scriptgt;alert(xss);lt;/scriptgt;
console.log(html);以上示例使用了 js-xss 来实现。可以看到在输出中保留了 h1 标签且过滤了 script 标签
cookie 如何防范 XSS 攻击
XSS (跨站脚本攻击)是指攻击者在返回的 HTML 中嵌入 javascript 脚本为了减轻这些 攻击需要在 HTTP 头部配上set-cookie
httpOnly 这个属性可以防止 XSS它会禁止 javascript 脚本来访问 cookiesecure- 这个属性告诉浏览器仅在请求为 https 的时候发送 cookie
2. 跨站请求伪造CSRF CSRF 就是利用用户的登录态发起恶意请求CSRFCross-site request forgery 跨站请求伪造是一种常见的攻击方式。是指 A 网站正常登陆后cookie 正常保存登录信息其他网站 B 通过某种方式调用 A 网站接口进行操作A 的接口会在请求时会自动带上 cookie。 同源策略可以通过 html 标签加载资源而且同源策略不阻止接口请求而是拦截请求结果CSRF 恰恰占了这两个便宜。 对于 GET 请求直接放到 img 就能神不知鬼不觉地请求跨域接口。 对于 POST 请求很多例子都使用 form 提交 例子 form actionnowikihttp://bank.com/transfer.do/nowiki methodPOSTinput typehidden nameacct valueMARIA /input typehidden nameamount value100000 /input typesubmit valueView my pictures /
/form浏览器同源策略不能作为防范 CSRF 的方法 浏览器允许这么做归根到底就是因为你 无法用 js 直接操作获得的结果。 CSRF怎么获取用户的登录态cookie通常是不能跨域访问的那为什么会有CSRF攻击总结
3. 浏览器同源策略 SOP
3.1 同源3.2 限制3.3 绕过跨域3.4 浏览器同源策略与ajax
4. 跨域资源共享 CORS
4.1 简单请求4.2 预检请求4.3 CORS 与 cookie
5. 密码安全