开发者社区> 技术小胖子> 正文

8个与安全相关的PHP函数

简介:
+关注继续查看

安全问题是编程语言中需要考虑的重要部分,几乎在任何一种实际的语言中都会提供一些函数,模块,或其它确保安全的功能。在现代互联网中,我们经常要 从世界各地的用户中获得输入数据。但是,我们都知道“永远不能相信那些用户输入的数据”。所以在各种的Web开发语言中,都会提供保证用户输入数据安全的 函数。今天,我们就来看一看作为最著名的开源语言PHP中提供的这样的函数。

       在PHP中,有些非常有用并且方便的函数,它们可以帮助你的网站防止出现像SQL注入攻击,XSS攻击等问题。我们看看这些在PHP中可以保证项目安全的函数,下面列出的这些函数只是我发现的对你项目有帮助的,可能会不全。
 

20141031032449362.jpg


 

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,年龄这样的数据时。




原文:http://www.pixelstech.net/article/1300722997-Useful-functions-to-provide-secure-PHP-application
译文:http://www.php100.com/html/it/focus/2014/1031/7679.html
(翻译:PHP100_Zeroing)







   本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1616945,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
潜藏在PHP安全的边缘
1.本篇文章由复眼小组的瞳话原创,未经允许禁止转载 2.本文一共1376字,8张图,预计阅读时间6分钟 3.本文比较基础,请大佬酌情观看,如果有其他的思路,欢迎和我们交流
20 0
PHP中的session安全吗?底层原理是什么?
PHP中的session安全吗?底层原理是什么?
21 0
提升PHP安全:8个必须修改的PHP默认配置
提升PHP安全:8个必须修改的PHP默认配置
61 0
和php有关的几种常见安全详解
和php有关的几种常见安全详解
92 0
php接口安全设计浅谈
php接口安全设计浅谈
62 0
网络安全-php安全知识点
网络安全-php安全知识点
61 0
如何写出安全又可靠的PHP脚本
如何写出安全又可靠的PHP脚本
70 0
Phper 学 C 兴趣入门 - 为什么 php 手册里经常说某个字符串函数是二进制安全的
为什么 php 手册里经常说某个字符串函数是二进制安全的
13403 0
+关注
技术小胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
PHP 2017.北京 全球开发者大会——高可用的PHP
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多