合天实验--xss基础防御对策

实例1

xss漏洞产生的基本原因为:在Web应用的网页中,部分显示内容会依据外界的输入值而发生变化,在生成HTML的过程中,如果HTML语法中含有特殊意义的字符(元字符)没有被正确处理,结果就会导致HTML或者是Javacript被注入,从而使得原来的HTML结构发生变化,然后就会滋生出我们常说的xss漏洞。

实例1 的代码为:
在这里插入图片描述

对于用户输入的“name”没有做任何的处理。然后用JavaScript代码可以进行攻击<script>alert(123)</script>
在这里插入图片描述

防御对策
htmlspecialchars函数:进行HTML的转义。
在这里插入图片描述
用法: string htmlspecialchars(string $string, int $quote_style, string $charset);
$string——转换对象字符串
$qote_style——转换方法(ENT_NOQUOTES,ENT_COMPAT,ENT_QUOTES)
$charset——字符编码。例如:UTF-8、GBK

<?php
echo htmlspecialchars($_GET["name"],ENT_COMPAT,"UTF-8");
?>

修改源代码之后再次输入时就没有弹框了,这句话被原样的输出在了页面上。
在这里插入图片描述

实例2

在这里插入图片描述

preg_replace(“/<script>/”,””, $_name); 这句代码将小写的 <script 替换为空。
但可以利用大小写绕过。
在这里插入图片描述
防御对策:同样利用htmlspecialchars函数过滤。
在这里插入图片描述

修改后再次测试,原样输出:
在这里插入图片描述

实例3

源代码:
在这里插入图片描述

/<script/的后面多了个小写的i,那么这就表示对大小写忽略。
不能用大小写过滤。

但是
可以用其他的xss攻击形式:<img src=1 onerror=alert(123)>
在这里插入图片描述

防御对策:
仍然用htmlspecialchars函数
在这里插入图片描述

在这里插入图片描述

发布了7 篇原创文章 · 获赞 0 · 访问量 390

猜你喜欢

转载自blog.csdn.net/yqdid/article/details/104884786