《PHP教程:PHP中字符安全过滤函数使用小结》要点:
本文介绍了PHP教程:PHP中字符安全过滤函数使用小结,希望对您有用。如果有疑问,可以联系我们。
在WEB开发过程中,我们经常要获取来自于世界各地的用户输入的数据.但是,我们“永远都不能相信那些用户输入的数据”.所以在各种的Web开发语言中,都会提供保证用户输入数据平安的函数.在PHP中,有些非常有用并且方便的函数,它们可以帮助你防止出现像SQL注入攻击,XSS攻击等问题.
PHP实例
1. mysql_real_escape_string()
PHP实例
这个函数曾经对于在PHP中防止SQL注入攻击提供了很大的帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询之前已经是平安的了.但你要注意你是在连接着数据库的情况下使用这个函数.
但现在mysql_real_escape_string()这个函数基本不用了,所有新的应用开发都应该使用像PDO这样的库对数据库进行操作,也就是说,我们可以使用现成的语句防止SQL注入攻击.
PHP实例
2. addslashes()
PHP实例
这个函数和上面的mysql_real_escape_string()很相似,同样是为特殊字符加上反斜杠,但要注意当设置文件php.ini中的 magic_quotes_gpc 的值为“on”时,不要使用这个函数.magic_quotes_gpc = on时,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes().不要对已经被 magic_quotes_gpc 转义过的字符串 使用 addslashes(),因为这样会导致双层转义.你可以通过PHP中get_magic_quotes_gpc()函数检查这个变量的值.
PHP实例
3. htmlentities()
PHP实例
这个函数对过滤用户输入数据非常有用,它可以把字符转换为 HTML 实体.比如,当用户输入字符“<”时,就会被该函数转化为HTML实体 “<”(查看源代码是将会看到“<”),因此防止了XSS和SQL注入攻击,对于无法被识别的字符集将被忽略,并由 ISO-8859-1 代替
PHP实例
4. htmlspecialchars()
PHP实例
这个函数跟上面的很相似,HTML中的一些字符有着特殊的含义,如果要体现这样的含义,就要被转换为HTML实体,这个函数会返回转换后的字符串.
PHP实例
5. strip_tags()
PHP实例
这个函数可以去除字符串中所有的HTML,JavaScript和PHP标签,当然你也可以通过设置该函数的第二个参数,忽略过滤一些特定的标签.
PHP实例
6. intval()
PHP实例
intval其实不属于过滤的函数,它的作用是将变量转成整数类型.在我们需要得到一个整数的参数时非常有用,你可以用这个函数让你的PHP代码更平安,特别是当你在解析id,年龄这样的整数形数据时.
PHP实例
PHP关于表单提交特殊字符的处理办法做个汇总,主要涉及htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string等几个函数联合使用,与大家共同交流.
一、几个与特殊字符处理有关的PHP函数PHP实例
函数名 | 释义 | 介绍 |
htmlspecialchars | 将与、单双引号、大于和小于号化成HTML格式 | &转成& "转成" ' 转成' <转成< >转成> |
htmlentities() | 所有字符都转成HTML格式 | 除上面htmlspecialchars字符外,还包含双字节字符显示成编码等. |
addslashes | 单双引号、反斜线及NULL加上反斜线转义 | 被改的字符包含单引号(')、双引号(")、反斜线backslash (\) 以及空字符NULL. |
stripslashes | 去掉反斜线字符 | 去掉字符串中的反斜线字符.若是连续二个反斜线,则去掉一个,留下一个.若只有一个反斜线,就直接去掉. |
quotemeta | 加入引用符号 | 将字符串中含有. \\ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线"\" 符号. |
nl2br() | 将换行字符转成 |
|
strip_tags | 去掉HTML及PHP标记 | 去掉字符串中任何HTML标记和PHP标记,包含标记封堵之间的内容.注意如果字符串HTML及PHP标签存在错误,也会返回错误. |
mysql_real_escape_string | 转义SQL字符串中的特殊字符 | 转义\x00 \n \r 空格 \ ' " \x1a,针对多字节字符处理很有效.mysql_real_escape_string会判断字符集,mysql_escape_string则不用考虑. |
这些都是PHP内置的字符串过滤函数,十分简单实用,希望小伙伴们能用好他们.PHP实例
维易PHP培训学院每天发布《PHP教程:PHP中字符安全过滤函数使用小结》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。