首页 » PHP教程 » prophpsecurity技巧_对PHP安然相关的函数

prophpsecurity技巧_对PHP安然相关的函数

访客 2024-11-23 0

扫一扫用手机浏览

文章目录 [+]

在PHP 中有许多方便的函数可以帮助你免于类似于 SQL注入,XSS攻击。
现在让我们来看一下这些能够给你的项目增加安全性的函数吧。
但是,请把稳,这里只是一些常用的函数的列表,大概他们并不全面,但是我相信他们都是对你的项目是非常有帮助的。

安全一贯是一个在编程措辞中非常值得去关注的方面。
在任何一种成熟的编程措辞中都有得当的办法来担保程序的安全性,在当代的 WEB 开拓中,我们常常须要去处理用户的输入。
(那么这时候,问题就来了)有一句编程格言是:千万不要相信用户输入的安全性。
以是呢,本日就先容一些在PHP 中最常用的为你的代码供应安全保护的方法。

prophpsecurity技巧_对PHP安然相关的函数

mysql_real_escape_string( string sqlQuery ) :

prophpsecurity技巧_对PHP安然相关的函数
(图片来自网络侵删)

●转义 SQL 语句中利用的字符串中的分外字符,并考虑到连接确当前字符集。
一个非常有用的函数,可以有效地避免 SQL 注入。

以下字符会被转换:

, , ,,’,”,

在实行sql语句之前,对要将实行的sql query 利用该函数处理,会将一些危 险扼杀在摇篮中。

但是现在一样平常在较为成熟的项目中,一样平常比较推举利用类似 PDO 这样的数据库持久层来处理所有的数据库操作。
他们代表着更为前辈的数据库操作处理技能,在安全性,数据读写的速率上逗比那些古老的 mysql_ api 强大了不少。

addslashes() :

在将一些数据插入到数据库中时,这个函数会非常有用,它可以在单引号前加上反斜杠,使得数据在插入时不会涌现缺点。
但是它的利用与php.ini 中的一项设置有关系 — magic_quotes_gpc

1. 对付PHP magic_quotes_gpc=on的情形, 我们可以不对输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示。

如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须利用stripslashes()去掉多余的反斜杠。

2. 对付PHP magic_quotes_gpc=off 的情形

必须利用addslashes()对输入数据进行处理,但并不须要利用stripslashes()格式化输出,由于addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的实行。

【stripslashes() :删除由 addslashes() 函数添加的反斜杠。

htmlentities() :

一个非常有用的用来处理输出的函数。
它用来将一些可能导致XXS攻击的字符转化为html实体,这些字符在浏览器显示的时候是正常的,但是当你查看它的源代码时,实际上这些分外字符必不会是他显示的那样,例如

输出:

John & ‘Adams’

源码:

John & 'Adams';

输出:

<>

源码:

<>gt;

编码这些符号,有效地避免了XSS 攻击。

htmlspecialchars():

和上面的函数是一样的,但是它更常用一些,由于 htmlentities() 是将所有的有在html 标准中定义了的字符转换成他们对应的html实体,这样会是你的输有缺少易读性(html 实体列表 http://www.w3school.com.cn/tags/html_ref_entities.html)。
以是呢,利用 htmlspecialchars() 只是将一些 预定义的字符(便是会导致涌现问题的)转换为html实体。
例如:

& (和号) 成为 &

” (双引号) 成为 ”

‘ (单引号) 成为 ‘

< (小于) 成为 <

> (大于) 成为 >

以是,在一些项目中,我还是常常利用 htmlspecialchars() 来处理html 的输出的。
他在安全这一方面做得更详细一些。

strip_tags(): 一样平常在输出时利用,将HTML、XML 以及 PHP 的标签剥去。

函数原型:strip_tags(string,allow)

String 代表输入的字符串,allow 代表 不删除的标签,你可以通过 allow 来自定义过须要滤掉的标签

md5() :

一个将字符串转换为一个32位的哈希值的函数(不能逆向解密),任何一个字符串都能通过这个函数得到一个唯一的32位字符串。
但是,现在利用这个函数时,须要把稳有一些数据库记录了大量的md5 值,通过暴力列举的办法来破解你的密码,以是在利用的时候,你可以先将你的原字符串加一层密,然后再利用md5()哈希,会得到更好的效果。

sha1() :

和md5() 和相似的一个函数,但是他利用不同的算法天生一个 40个字符的字符串。
可以在项目中考虑利用

intval() :

大概你认为这个函数不是一个 security function。
但是它在某些情形下可以很好地保护你的code。
对从用户网络到的一些数据例如 ID,password,username处理,也容许以肃清一些安全隐患,毕竟这里是重灾区。

标签:

相关文章

介绍照片加密技术,守护隐私的数字堡垒

在信息爆炸的时代,个人隐私的保护显得尤为重要。照片作为记录生活、表达情感的重要载体,其安全性备受关注。如何加密照片,成为人们关注的...

PHP教程 2025-01-03 阅读0 评论0

介绍网络盗号黑手,如何防范游戏账号安全

随着互联网技术的飞速发展,网络游戏已成为人们休闲娱乐的重要方式。随之而来的是网络安全问题日益突出,尤其是游戏账号被盗事件频发。本文...

PHP教程 2025-01-03 阅读0 评论0

介绍网络诈骗,如何防范魔域号盗用风险

随着互联网的普及,网络游戏成为人们休闲娱乐的重要方式。在享受游戏乐趣的网络安全问题也日益凸显。近年来,魔域号盗用事件频发,给玩家带...

PHP教程 2025-01-03 阅读0 评论0

介绍网速测试,如何准确测量你的网络速度

随着互联网的普及,网络已经成为我们生活中不可或缺的一部分。面对日益增长的在线需求,我们是否真的了解自己的网速呢?本文将为您揭秘网速...

PHP教程 2025-01-03 阅读0 评论0