合天实验--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函数
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值