XSS(Cross Site Scripting)攻击的全称是跨站脚本攻击,跨站脚本攻击的方式是恶意攻击者在网页中嵌入恶意脚本程序,当用户打开网页的时候脚本程序便在客户端执行,盗取客户的cookie及用户名和密码,下载执行病毒及木马程序,甚至获得客户端的admin权限等。
XSS攻击的方式
1.假设界面上存在一个输入框用以让用户输入数据<input type ="text" id = "user_name"></input>,此时恶意用户在录入数据的时候输入的并不是用户名,而是一段可执行的脚本程序<srcipt>alert('f')</srcipt>,由于某种原因,这段代码在服务端验证不通过,服务端重定向回这个页面,并带上用户输入的user_name参数,如下<input type ="text" id = "user_name"/><srcipt>alert('f')</srcipt>,这时页面会弹出alert('f'),如果是一段恶意代码,后果不堪设想
2.恶意用户可以发一个包含恶意脚本的推广链接给终端用户,该链接经过URLEcode转码以迷惑用户,一旦用户点击,则恶意脚本执行,对用户造成危害。
3.用户提交表单,数据保存到数据库中,需要到另一个界面去展示。这时恶意用户输入一段恶意脚本,保存在数据库中。当页面展示时,恶意脚本被植入到页面中,从而造成危害。例如在一篇非常火的博客中嵌入危害代码。用户浏览该博客时,脚本执行,从而达到恶意攻击的目的。
XSS攻击的防范
XSS攻击造成的危害之所以会发生,是因为用户的输入变成了可执行的代码,因此我们要对用户的输入进行HTML转义处理,将其中的尖括号,引号,单引号等特殊字符进行转义编码,例如“〈”转义后为“<;”,“>”转义后为“>;”,“'”转义后为“&;”,“"”转义后为“";”