PHP中常用的转义函数


Posted in PHP onFebruary 28, 2014

1. addslashes

addslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_string函数用来转义SQL。 注意在PHP5.3之前,magic_quotes_gpc是默认开启的,其主要是在$GET, $POST, $COOKIE上执行addslashes操作,所以不需要在这些变量上重复调用addslashes,否则会double escaping的。不过magic_quotes_gpc在PHP5.3就已经被废弃,从PHP5.4开始就已经被移除了,如果使用PHP最新版本可以不用担心这个问题。stripslashes为addslashes的unescape函数。

2. htmlspecialchars

htmlspecialchars把HTML中的几个特殊字符转义成HTML Entity(格式:&xxxx;)形式,包括(&),(‘),(“),(<),(>)五个字符。

& (AND) => &
” (双引号) => " (当ENT_NOQUOTES没有设置的时候)
‘ (单引号) => ' (当ENT_QUOTES设置)
< (小于号) => <
> (大于号) => >  
htmlspecialchars可以用来过滤$GET,$POST,$COOKIE数据,预防XSS。注意htmlspecialchars函数只是把认为有安全隐患的HTML字符进行转义,如果想要把HTML所有可以转义的字符都进行转义的话请使用htmlentities。htmlspecialchars_decode为htmlspecialchars的decode函数。

3. htmlentities

htmlentities把HTML中可以转义的内容转义成HTML Entity。html_entity_decode为htmlentities的decode函数。

4. mysql_real_escape_string

mysql_real_escape_string会调用MySQL的库函数mysql_real_escape_string,对(\x00), (\n), (\r), (), (‘), (\x1a)进行转义,即在前面添加反斜杠(),预防SQL注入。注意你不需要在读取数据库数据的时候调用stripslashes来进行unescape,因为这些反斜杠是在数据库执行SQL的时候添加的,当把数据写入到数据库的时候反斜杠会被移除,所以写入到数据库的内容就是原始数据,并不会在前面多了反斜杠。

5. strip_tags

strip_tags会过滤掉NUL,HTML和PHP的标签。

6. 结语

PHP自带的安全函数并不能完全避免XSS,推荐使用HTML Purifier

PHP 相关文章推荐
php下的权限算法的实现
Apr 28 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
php while循环得到循环次数
Oct 26 PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
PHP实现批量修改文件名的方法示例
Sep 18 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 PHP
PHP中鲜为人知的10个函数
Feb 28 #PHP
php中调用其他系统http接口的方法说明
Feb 28 #PHP
PHP URL参数获取方式的四种例子
Feb 28 #PHP
php使用多个进程同时控制文件读写示例
Feb 28 #PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 #PHP
php命名空间学习详解
Feb 27 #PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 #PHP
You might like
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
PHP微商城开源代码实例
2019/03/27 PHP
跟我学习javascript的arguments对象
2015/11/16 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
What is view? why do we have view?
2012/06/22 面试题
高中生期末评语
2014/01/28 职场文书
暑假学习心得体会
2014/09/02 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
团日活动总结格式
2015/05/11 职场文书
企业安全生产检查制度
2015/08/06 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android