前端安全机制问题之一(XSS)

前端安全机制问题之一(XSS)_第1张图片
安全吗.jpg

作为安全方面的小白,笔记当然要从基础开始,简单的来
先说说XSS即跨站脚本攻击

  1. 跨站脚本攻击的原理
    XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。
    跨站脚本攻击的危害:窃取cookie、放蠕虫、网站钓鱼 ...
    跨站脚本攻击的分类主要有:存储型XSS、反射型XSS、DOM型XSS
    XSS漏洞是Web应用程序中最常见的漏洞之一。如果您的站点没有预防XSS漏洞的固定方法,那么就存在XSS漏洞。这个利用XSS漏洞的病毒之所以具有重要意义是因为,通常难以看到XSS漏洞的威胁,而该病毒则将其发挥得淋漓尽致。
    理论知识久说到这里,后面链接有详情的描述,不懂得可以去看或者百度
    https://www.cnblogs.com/caijh/p/6163334.html 这个地方对XSS是怎样进行攻击的进行了具体的解说
    下面我们来看看怎么防御XSS攻击:
    a:HttpOnly 浏览器禁止页面的JS访问带有HttpOnly属性的Cookie。
    b:输入检查 XSS Filter 对输入内容做格式检查,类似“白名单”,可以让一些基于特殊字符的攻击失效。在客户端JS和服务器端代码中实现相同的输入检查(服务器端必须有)。
    c:输出检查 在变量输出到html页面时,可以使用编码或转义的方式来防御XSS攻击 HtmlEncode:将字符转成HTMLEntities,对应的标准是ISO-8859-1。
    JS中可以使用JavascriptEncode。需要对“\”对特殊字符转义,输出的变量的必须在引号内部。
    d:XSS的本质是“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。
    在Html标签中输出:
    var</div> 在标签中输出的变量,如果未做任何处理,都能导致直接产生XSS:构造一个<script>标签,或者是任何能够产生脚本执行的方式:<div><script>alert(/XSS/)</script></div> 或者 <a href=# ><img src=# onerror=alert(1) /></a> 防御方法:对变量使用HtmlEncode。 在Html属性中输出:<div id=var">
    攻击方法:
    <"">

    防御方法:采用HtmlEncode。 在OWASP ESAPI中推荐了一种更严格的HtmlEncode:除了字母、数字外,所有的特殊字符都被编码成HTMLEntities。

你可能感兴趣的:(前端安全机制问题之一(XSS))