首页
社区
课程
招聘
8个与安全相关的PHP函数
发表于: 2014-12-2 20:46 739

8个与安全相关的PHP函数

2014-12-2 20:46
739
原文地址: 97aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8Z5M7o6p5H3x3q4)9J5k6h3y4G2L8g2)9J5c8X3S2@1L8h3I4Q4x3V1k6A6N6q4)9J5c8X3k6G2j5%4g2K6i4K6u0r3x3U0l9I4y4q4)9J5c8U0p5H3x3K6q4Q4x3V1j5%4y4U0M7&6i4K6u0W2K9s2c8E0L8l9`.`.

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

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

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

原文:afdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8A6P5r3g2D9M7%4c8W2j5$3S2Q4x3X3g2F1k6i4c8Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0r3x3e0x3H3x3o6M7J5x3U0V1&6y4#2)9J5k6q4g2K6k6h3k6#2L8q4)9J5k6r3k6#2L8X3y4@1K9h3!0F1M7#2)9J5k6s2c8G2i4K6u0V1M7s2u0G2N6X3W2V1k6g2)9J5k6s2y4W2j5%4g2J5k6g2)9J5k6q4m8t1f1q4)9J5k6r3q4H3M7r3I4A6j5$3q4@1K9h3!0F1
译文:110K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8Z5M7o6p5H3x3q4)9J5k6h3y4G2L8g2)9J5c8X3S2@1L8h3I4Q4x3V1k6A6N6q4)9J5c8X3k6G2j5%4g2K6i4K6u0r3x3U0l9I4y4q4)9J5c8U0p5H3x3K6q4Q4x3V1j5%4y4U0M7&6i4K6u0W2K9s2c8E0L8l9`.`.
(翻译:PHP100_Zeroing)

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回