鱼C论坛

 找回密码
 立即注册
查看: 2999|回复: 1

[PHP API档案] addslashes

[复制链接]
发表于 2014-9-12 19:45:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 大麦田 于 2014-9-13 11:22 编辑

使用反斜线引用字符串

函数原型:
string addslashes  ( string $str  )
函数功能:
返回字符串,将字符串$str中,单引号(')、双引号(")、反斜线(\)与 NUL( NULL  字符),前面都加上了反斜线。 可用于避免数据库操作的sql语句错误。
函数参数:
参数 含义
$str 要转义的字符


函数实例:
<?php
$not_escaped = "I'm fishc member.";
$escaped = addslashes($not_escaped);

echo $escaped;
echo "<br />";
?>
进阶:
<?php
//我们演示一下,查询用户的信息的sql注入
$name = "小甲鱼";
$sql = "SELECT * FROM users WHERE name='{$name}' ";
//得到正确的结果是:
//SELECT * FROM users WHERE name='小甲鱼'
echo $sql.'<br />';

//sql注入示例
$name = "小甲鱼'; DELETE FROM users; '";
$sql = "SELECT * FROM users WHERE name='{$name}' ";
//得到结果是:中间就把用户数据全删掉了,然后小甲鱼要出来道歉了。
//SELECT * FROM users WHERE name='小甲鱼'; DELETE FROM users; ''
echo $sql.'<br />';

$name = "小甲鱼'; DELETE FROM users; '"; //小甲鱼\'; DELETE FROM users; \'
$name = addslashes($name);
$sql = "SELECT * FROM users WHERE name='{$name}' ";
//得到的结果: 此处查询的用户名 小甲鱼\'; DELETE FROM users; \',安全瞬间高涨。
//SELECT * FROM users WHERE name='小甲鱼\'; DELETE FROM users; \''
echo $sql.'<br />';
?>
函数注意:

1. 在PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on,
所有的 GET、POST 和 COOKIE 数据都用被 addslashes()  了。

2. 不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes() ,因为这样会导致双层转义。

3. 遇到这种情况时可以使用函数 get_magic_quotes_gpc()  进行检测












本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-26 06:01:11 | 显示全部楼层
谢谢版主分享~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表