有趣网站建设无聊,东莞常平医院,上网站建设公司,网站面包屑导航代码htmlspecialchars()函数的功能如下#xff1a; htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是#xff1a; #xff08;和号#xff09;成为 #xff08;双引号#xff09;成为 #xff08;单引号#xff09;成为 … htmlspecialchars()函数的功能如下 htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是 和号成为 双引号成为 单引号成为 小于成为 大于成为 它的语法如下 htmlspecialchars(string,flags,character-set,double_encode) 其中第二个参数flags需要重要注意很多开发者就是因为没有注意到这个参数导致使用htmlspecialchars()函数过滤XSS时被绕过。因为flags参数对于引号的编码如下 可用的引号类型 ENT_COMPAT - 默认。仅编码双引号。ENT_QUOTES - 编码双引号和单引号。ENT_NOQUOTES - 不编码任何引号。默认是只编码双引号的默认只编码双引号默认只编码双引号……重要的事情说三遍 于是看下面的代码 ?php $name $_GET[name]; $name htmlspecialchars($name);
? input typetext value?php echo $name? 轻松绕过 加上ENT_QUOTES参数 ?php $name $_GET[name]; $name htmlspecialchars($name, ENT_QUOTES);
? input typetext value?php echo $name? 发现无法绕过了 查看源代码 单引号已经被转换了。转载于:https://www.cnblogs.com/JeromeZ/p/8452819.html