htmlspecialchars() 函数过滤XSS的问题
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 type='text' value='<?php echo $name?>'>
<?php $name = $_GET["name"]; $name = htmlspecialchars($name, ENT_QUOTES);
?> <input type='text' value='<?php echo $name?>'>
发现无法绕过了:
转载于:https://www.cnblogs.com/JeromeZ/p/8452819.html
htmlspecialchars() 函数过滤XSS的问题相关推荐
- htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体.语法为:htmlspecialchars(string,quotestyle,character-set). PHP ...
- java 过滤xss脚本_Java Web应用程序的反跨站点脚本(XSS)过滤器
java 过滤xss脚本 这是为Java Web应用程序编写的一个好简单的反跨站点脚本(XSS)过滤器. 它的基本作用是从请求参数中删除所有可疑字符串,然后将其返回给应用程序. 这是我以前关于该主题的 ...
- java 过滤脚本_【快学SpringBoot】过滤XSS脚本攻击(包括json格式)
XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...
- Springboot过滤xss
Springboot过滤xss 两种xss类型:存储型xss.反射型xss. 简介: 存储型:持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代 ...
- Java添加过滤器过滤xss入侵
Filter过滤器过滤XSS攻击 一.springmvc框架 1.添加自定义过滤器文件XssFilter.java和XssHttpServletRequestWrapper.java XssFilte ...
- PHP htmlspecialchars()函数用法与实例讲解
更多python.PHP.JAVA教程请到友情连接: 菜鸟教程https://www.piaodoo.com 茂名一技http://www.enechn.com ppt制作教程步骤 http://ww ...
- java过滤函数,过滤函数 (Sun Java System Portal Server 7.2 管理指南)
过滤函数 过滤函数在"元数据"和"数据"阶段运行,以根据函数及其属性指定的具体条件来允许或拒绝资源.在 filter.conf 文件的"枚举" ...
- trim函数 html,trim、stripslashes、htmlspecialchars函数
通过 PHP 验证表单数据 我们要做的第一件事是通过 PHP 的 htmlspecialchars() 函数传递所有变量. 在我们使用 htmlspecialchars() 函数后,如果用户试图在文本 ...
- PHP之stripslashes()函数和htmlspecialchars()函数
1. 在进行表单验证中通常使用stripslashes()函数对表单提交的数据进行处理.那么该函数是什么意思呢? stripslashes()函数用于清理字符串中的反斜杠(\). 与之相反的是adds ...
最新文章
- android11有哪种手机,支持安卓11系统的机型有哪些
- SVM算法实现光学字符识别
- Random类(Java中的随机类)
- Linux 下如何安装软件?
- boost::function模块右值的测试程序
- java 着色问题 回溯算法,C语言使用回溯法解旅行售货员问题与图的m着色问题
- POJ 1159 Palindrome(字符串变回文:LCS)
- 为什么程序员一定要加班?
- 3.6 - Maya Commands: setAttr
- 在肉鸡上构建一个完美的虚拟主机
- 一个好的热修复技术,将为你的 App助力百倍
- LPC1788 IAP的实现及遇见的问题
- 回顾传输层的TCP与UDP协议
- [AngularJS面面观] 20. 依赖注入 --- instance注入器以及provider注入器
- 6.4.10 删除电子邮件
- BZOJ.4453.cys就是要拿英魂!(后缀数组 单调栈)
- vue+element 在ie和360浏览器的兼容问题
- 使用重力感应传感器和Arduino的手机控制机器人车
- 第十一届蓝桥杯大赛软件类B组省赛题目(2020蓝桥杯)
- 看板的作用是什么?任务看板如何跟进
热门文章
- php提示是否运行,php运行错误提示
- python多进程队列中的队列_python 多进程队列数据处理详解
- 计算机科学导论课后感悟,计算机科学导论课后总结_2
- 在python中用递归的方法编程_python基础之函数,递归,内置函数
- 在c语言中数组下标的最小值,数组元素下标的上限_c语言中,数组元素的下标下限为...
- 盛金公式解一元三次方程_【国际数学竞赛】高次方程求根
- 覆盖php配置文件,配置 – 用另一个文件覆盖php-fpm池配置值
- 2014职称计算机考试光盘,江苏省职称计算机考试光盘答案.doc
- 嵌入式linux 网络唤醒,C语言实现wake on lan(网络唤醒...-Windows系统下用命令行编译C/C++...-字符串常量引起的思考_169IT.COM...
- 五、Python第五课——Python中组织列表的相关函数