php中常用的几个安全函数

发布时间:2024年01月11日

1.?mysql_real_escape_string()

?????? 这个函数对于在PHP中防止SQL注入攻击很有帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询以前已经是安全的了。但你要注意你是在连接着数据库的情况下使用这个函数。

?????? 但现在mysql_real_escape_string()这个函数基本不用了,所有新的应用开发都应该使用像PDO这样的库对数据库进行操作,也就是说,我们可以使用现成的语句防止SQL注入攻击。

2.?addslashes()

?????? 这个函数和上面的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()函数检查这个变量的值。

3.?htmlentities()

?????? 这个函数对过滤用户输入数据非常有用,它可以把字符转换为?HTML?实体。比如,当用户输入字符“<”时,就会被该函数转化为HTML实体<,因此防止了XSS和SQL注入攻击。

4.?htmlspecialchars()

?????? HTML中的一些字符有着特殊的含义,如果要体现这样的含义,就要被转换为HTML实体,这个函数会返回转换后的字符串,比如,‘&’amp会转为‘&’。

5.?strip_tags()

?????? 这个函数可以去除字符串中所有的HTML,JavaScript和PHP标签,当然你也可以通过设置该函数的第二个参数,让一些特定的标签出现。

6.?md5()

?????? 一些开发者存储的密码非常简单,这从安全的角度上看是不好的,md5()函数可以产生给定字符串的32个字符的md5散列,而且这个过程不可逆,即你不能从md5()的结果得到原始字符串。
?
7.?sha1()

?????? 这个函数和上面的md5()相似,但是它使用了不同的算法,产生的是40个字符的SHA-1散列(md5产生的是32个字符的散列)。

8.?intval()

?????? 不要笑,我知道这不是一个和安全相关的函数,它是在将变量转成整数类型。但是,你可以用这个函数让你的PHP代码更安全,特别是当你在解析id,年龄这样的数据时。

9.eval()

该函数把字符串当做php代码来计算,并且字符串必须是合法的php代码,要以分号结尾。

10.shell_exec ()

通过shell 环境执行命令,并且将完整的输出以字符串的方式返回。值得一提的是,这个函数跟执行操作符(反引号``)具有等同效力。

11.proc_open()

proc_open()?是一个 PHP 函数,用于在 PHP 中执行外部程序。它允许你通过一个管道与执行的程序进行通信,并获取程序的输出。

12.ini_set()

ini_set()?是 PHP 中的一个函数,用于在运行时设置配置选项的值。这些配置选项通常是在 PHP 的配置文件?php.ini?中设置的,但使用?ini_set()?可以在脚本执行期间动态地更改这些设置。

文章来源:https://blog.csdn.net/qinshi501/article/details/135537872
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。