好!欢迎访问迷津渡口 现在时间是:

迷津渡口

越感到迷惑 越接近真理

php防sql注入攻击(含php6)

网站攻击最常见的就是sql注入式攻击了,防范于未然很重要~

PHP可以开启环境变量配置为POST、GET、REQUEST、COOKIE等用户传过来的参数值自动增加转义字符“\”,以确保这些数据的安全性。

在php.ini配置环境变量magic_quotes_gpc的值为On时开启自动添加转义字符,配置为Off时关闭。

get_magic_quotes_gpc()函数就是获取magic_quotes_gpc的值的函数,On时为1,Off时为0。

开启后,在使用数据之前恢复正常的数据可采用以下函数qingzzDoStripSlashes()。

/**
 * 去除多余的转义字符
 */
function qingzzDoStripslashes() {
    if (PHP_VERSION() < 6 && get_magic_quotes_gpc()) {
	$_GET = qingzzStripslashesDeep($_GET);
	$_POST = qingzzStripslashesDeep($_POST);
	$_COOKIE = qingzzStripslashesDeep($_COOKIE);
	$_REQUEST = qingzzStripslashesDeep($_REQUEST);
    }
}

/**
 * 递归去除转义字符
 */
function qingzzStripslashesDeep($value) {
    $value = is_array($value) ? array_map('stripslashesDeep', $value) : stripslashes($value);
    return $value;
}

PHP6去除了magic quotes机制,因此只能自行添加了。

/**
 * 添加转义字符
 */
function qingzzAddslashes() {
    if (PHP_VERSION >= 6 || !get_magic_quotes_gpc()) {
	$_GET = qingzzAddslashesDeep($_GET);
	$_POST = qingzzAddslashesDeep($_POST);
	$_COOKIE = qingzzAddslashesDeep($_COOKIE);
	$_REQUEST = qingzzAddslashesDeep($_REQUEST);
    }
}

/**
 * 递归增加转义字符
 */
function qingzzAddslashesDeep($value) {
    $value = is_array($value) ? array_map('qingzzAddslashesDeep', $value) : addslashes($value);
    return $value;
}

至于判断是否转义,自己增加一个全局变量就好了~

点赞1
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 恋恋风尘
  2. 恋恋风尘
  3. 恋恋风尘
  4. 恋恋风尘
  5. 恋恋风尘
  6. 恋恋风尘
  7. 恋恋风尘
  8. 恋恋风尘
  9. 恋恋风尘