宝哥软件园

php中常用的安全过滤函数的集合

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

虽然各种开发框架为我们提供了处理安全问题的好方法,但是我们应该关注安全问题。原因很简单:很多小功能、小项目都不能使用框架,需要自己解决安全问题!

常用的安全函数有哪些:复制代码如下: MySQL _ real _ escape _ string()add slips()

这些功能的功能:

mysql_real_escape_string()和addslashes()函数对数据中的单引号和双引号进行转义!那就是防止sql注入!但是mysql_real_escape_string()考虑了字符集,比较安全!查阅相关数据后,我们可以得出一个结论:如果当前字符集是单字节,这两个函数功能相同,可以起到转义过滤的作用,但是谁会只使用单字节呢?尤其是utf8的使用越来越广泛!

功能的使用:

要理解mysql_real_escape_string()和addslashes()的用法,首先要理解另外两个函数的含义!

Get_magic_quotes_gpc()和get_magic_quotes_runtime(),我们来比较一下这两个函数的异同:

相同:a、两者都是用来获取php.ini配置文件的配置!打开时返回1,关闭时返回0!

b、打开后会转义过滤指定范围内的数据!

区别:a、它们的功能范围不同:magic_quotes_gpc主要作用于web客户端,简单来说主要过滤$_GET、$_POST和$_COOKE中的数据!Magic_quotes_runtime主要过滤从文件中读取的数据或者数据库查询得到的数据!b设置时间不同:运行时无法设置magic _ quotes _ gpc此设置只能在服务器重启时读取]运行时可以设置magic_quotes_runtime!注意:所谓的运行时设置就是我们可以通过ini_set()函数在脚本中设置php.ini文件中的配置!在了解了函数get_magic_quotes_gpc()和get_magic_quotes_runtime()之后,我们应该明白,当我们检测到php.ini配置文件中启用了magic_quotes_runtime和magic_quotes_gpc时,指定范围内的数据会被自动转义!如果关闭,我们需要使用mysql_real_escape_string()[或者addslashes函数进行过滤]

举个例子:

1.不管magic_quotes_gpc和magic_quotes_runctime是打开还是关闭,getdata.php脚本都可以安全地传输数据。内容如下:复制代码如下:php if(!GET _ magic _ quotes _ GPC()){ foreach($ _ GET as $ key=$ value){ $ value=MySQL _ real _ escape _ string($ value);} } if(!get _ magic _ quotes _ runtime()){ $ sourceDataRecord=file('。/source data . txt ');if($ sourceDataRecord){ foreach($ sourceDataRecord as $ sourceKey=$ source value){ $ source value=MySQL _ real _ escape _ string($ source value);} } } $gpcData=内爆(' t ',$ _ GET);$ runtimeData=inter decd(' t ',$ sourceDataRecord);echo $gpcData,$ runtimeData?

在sourceData.txt中,内容如下:

复制代码如下:’这是第三个星期天下午,我不会转弯.“转身”

我们请求getData.php的网址如下:

php.test.com/safe/getdata.php?Name=maw'eibinage=25执行结果如下:

复制代码如下: aw ' eibin 25 '这是第三个星期日下午 r n我正在转弯.转身 '

参考文献:

//www . JB 51 . net/article/35868 . htm

更多资讯
游戏推荐
更多+