博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php8安全,PHP八大安全函数解析
阅读量:1531 次
发布时间:2019-04-21

本文共 1416 字,大约阅读时间需要 4 分钟。

在现代互联网中,我们经常要 从世界各地的用户中获得输入数据。但是,我们都知道“永远不能相信那些用户输入的数据”。所以在各种的Web开发语言 中,都会提供保证用户输入数据安全的函数。在PHP中,有些非常有用并且方便的函数,它们可以帮助你的网站防止出现像SQL注入攻击,XSS攻击等问题。 当然在PHP代码编写中IDE(如:PhpStorm、Zend Studio )会有函数的高亮显示,来确保开发人员的使用,也有人使用代码混淆工具来保护这些函数或代码(如:Zend Guard),这些手段都是用来确保PHP函数的使用和安全的。今天我们主要是来看看这些函数到底是怎么定义与工作的。

c0db018c64a56a5cb9db4b3e2603a994.png

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 实体。比如,当用户输入字符“

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

前面说到,为确保PHP程序对数据的安全控制,会使用PHP程序代码混淆工具,在此小编透露下:慧都控件网正在搞年终促销活动,其中包括对加密工具的心愿收集(你希望什么打折,你就可以提出这个心愿,让慧都来满足你)<<<

转载地址:http://rkudy.baihongyu.com/

你可能感兴趣的文章
C# 特性demo
查看>>
C# Random随机数、TimeZone、OperatingSystem信息、StringBuilder这个好用
查看>>
C# 图片截取、放大、缩小与保存
查看>>
C# DateTime和时间戳
查看>>
C# split与正则表达式
查看>>
C# Base64转换
查看>>
C# 多线程
查看>>
C# 特性
查看>>
C# out 与 ref 关键字 就是传递引用
查看>>
C# 代码运行时间统计
查看>>
C# 自动属性
查看>>
C# 对象和集合的初始化器
查看>>
C# Lambda 表达式
查看>>
C# 委托的使用(指向函数的指针)
查看>>
C# 反射
查看>>
C# 使用Linq
查看>>
C# Linq复杂一点的查询
查看>>
C# 枚举类型
查看>>
C# 结构(structure)
查看>>
C# 继承与多态,相关关键字virtual、override、new
查看>>