1.反射性xss(reflacted)
仅执行一次,非持久型。主要存在于攻击者将恶意脚本附加到url的参数中,发送给受害者,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。
利用场景:
直接插入JS代码,修改url参数
攻 <script>alert('hack')</script>
防 $name=str_replace('<script>', ' ',$name) #将<script>替换成空
攻 <Script>alert('hack')</script>
<scri<script>pt>alert('hack')</script>
防 $name=preg_replace('/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i',' ',$name); #pre_replace()正则替换 i为忽略大小写
攻 <img src=1 one rror=alert('hack')> #用事件代替<script>标签
防 $name=htmlspacialchars($name); #htmlspacialchars(string)把预定义的字符<>$、转换为HTML实体,防止浏览器将其作为HTNL元素。
2.存储型xss(stored)
持久型。主要存在于攻击者将恶意脚本存储到服务器数据库中,当用户访问包含恶意相关数据的页面时,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。
利用场景:
防(输入)$message=strip_tags(addsashes($message)); #strip_tags(addsashes($message))函数剥去字符串中的HTML、XML以及PHP的标签;
(输出)$message=htmlspecialchar($massage);
$name=htmlspecialchar($row[''name]);
3.DOM型xss
通过JavaScript操作document,实现dom树的重构。主要存在于用户能修改页面的dom,造成客户端payload在浏览器中执行。
利用场景:
在url中
(结合网页的代码,补全前面,使<script>……</script>成为独立代码)
标签:web,跨站,浏览器,name,xss,代码,---,hack,message From: https://www.cnblogs.com/sun371/p/17541923.html