安全问题是PHP编程中需要考虑的重要问题,PHP中也提供一些函数来确保安全。在当前时代,我们要从用户那里获取输入数据,但是我们知道用户输入的数据包含一定的不安全性,所以在处理用户输入的数据时,要对数据进行安全处理。这里我们看看PHP提供的安全相关的8个函数。 1. mysql_real_escape_string() 这个函数可以很好的防止SQL注入,他会对特殊的字符,如单引号、双引号,加上“反斜杠”,确保用户输入的数据去查询之前是安全的。但是你要注意你是在连接着数据库的情况下使用这个函数。 但现在mysql_real_escape_string()这个函数基本不使用了,很多新的项目开发都使用PDO这样的库对数据库进行操作,所以我们可以使用现成的语句防止SQL注入攻击 2.addslashes() 这个函数和上面的mysql_real_escape_string()比较相似。但是有一点必须注意,当PHP配置 magic_quotes_gpc为on时,不要使用这个函数。magic_quotes_gpc设置为on时,对所有的GET、POST和COOKIE数据自动运行了addslashes()。对被magic_quotes_gpc转义过的字符串使用addslashes(),会导致双层转义。 3.htmlentities() 这个函数对过滤用户输入的数据非常有用,他可以将字符转换成HTML实体符。这样的转换,可以防止XSS和SQL注入攻击。 4.htmlspecialchars() HTML中的一些字符有着特殊的含义,如果要体现这样的含义,就要被转换成HTML实体,这个函数会返回转换后的字符串,比如, ‘&’ amp 会转为 ‘&’ 5.strip_tags() 这个函数可以去除传递参数中的所有HTML、JavaScript和PHP标签。 6.md5() md5()函数可以产生给定的字符串的32个字符的md5散列,而且这个过程不可逆,即你不能从md5()的结果得到原始的字符串。网上提供的md5解密,只是服务器数据库存储了数以百万计的md5加密前的字符串和加密后的字符串,然后将你输入的加密后的MD5字符串比较,进而获得加密前的数据。 7.sha1() 这个函数和md5()函数功能类似,但是他使用了不同的算法,产生的是40个字符的SHA-1散列 8. intval() 这个函数是将变量转换成整数类型。但是,你可以使用这个函数过滤非法数据,让PHP代码更安全,特别当你解析id、次数等这样的整数型数据时。 (责任编辑:最模板) |