XSS攻击和CSRF攻击

2021-04-25  本文已影响0人  my木子

前言:随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点。在移动互联网时代,前端人员除了传统的 XSS、CSRF 等安全问题之外,又时常遭遇网络劫持、非法调用 Hybrid API 等新型安全问题。当然,浏览器自身也在不断在进化和发展,不断引入 CSP(内容安全策略)、Same-Site Cookies 等新技术来增强安全性,但是仍存在很多潜在的威胁,这需要前端技术人员不断进行“查漏补缺”。

网络(DNS、HTTP)劫持

表现
原理
办法

非法调用 API

前后端分离时接口暴露出来,为了防止被非法调用,就要做一些措施保证接口的安全性。

办法

CSP(内容安全策略)

CSP 的主要目标是减少和报告 XSS 攻击,通常通过 HTTP 头信息或者 meta 元素定义策略。

开启 CSP ,设置HTTP Header 中的 Content-Security-Policy 或者设置 meta 标签

<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">

弊端

导致Eval及相关函数被禁用、内嵌的JavaScript代码将不会执行、只能通过白名单来加载远程脚本。

eval("x=10;y=20;document.write(x*y)");

Same-Site Cookies

通过 Cookie 的SameSite属性用来限制第三方 Cookie,从而防止 CSRF 攻击和用户追踪。

Set-Cookie: name=value; HttpOnly;

XSS

网址URL中特殊字符转义编码
字符 URL编码值
& &amp;
< &lt;
> &gt;
" &quot;
' &#x27;
/ &#x2F;
    // HTML 转义
    function htmlEscape(text){ 
        return text.replace(/[<>‘&\/]/g, function(match, pos, originalText){
            switch(match){
                case "<": return "&lt;"; 
                case ">":return "&gt;";
                case "&":return "&amp;"; 
                case "\"":return "&quot;"; 
                case "\'":return "&#x27;"; 
                case "/":return "&#x2F;";
            } 
        }); 
    }

HTML 字符实体 w3c

分类
类型 存储区 插入点 常见
存储型 XSS 后端数据库 HTML 论坛发帖、商品评论、用户私信等
反射型 XSS URL HTML 网站搜索、(引导)点击跳转等
DOM 型 XSS 后端数据库/前端存储/URL 前端 JavaScript

DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。

储存型:

localStorage.xss=alert('XSS')

<script>eval(localStorage.xss)</script>

反射型:https://www.xxx.com/product/search?kw=%3Cscript%3Ealert(document.cookie);%3C/script%3E

DOM型:

file:///Users/lc/Desktop/xss/index.html#alert(111)

<script>eval(location.hash.substr(1))</script>

预防
插件

JS、nodeJS:https://github.com/leizongmin/js-xss

JAVA:https://gitee.com/mirrors_naver/lucy-xss-filter

CSRF

防御
小游戏

http://alf.nu/alert1

参考文档/视频

https://juejin.cn/post/6844903689702866952

https://juejin.cn/post/6844903685122703367

https://www.bilibili.com/video/BV1DW411U7XE

https://www.bilibili.com/video/BV1iW411171s

上一篇 下一篇

猜你喜欢

热点阅读