鱼C论坛

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

[PHP API档案] addslashes

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

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

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

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

使用反斜线引用字符串

函数原型:
  1. string addslashes  ( string $str  )
复制代码

函数功能:
  1. 返回字符串,将字符串$str中,单引号(')、双引号(")、反斜线(\)与 NUL( NULL  字符),前面都加上了反斜线。 可用于避免数据库操作的sql语句错误。
复制代码

函数参数:
参数 含义
$str 要转义的字符


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

  4. echo $escaped;
  5. echo "<br />";
  6. ?>
复制代码

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

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

  14. $name = "小甲鱼'; DELETE FROM users; '"; //小甲鱼\'; DELETE FROM users; \'
  15. $name = addslashes($name);
  16. $sql = "SELECT * FROM users WHERE name='{$name}' ";
  17. //得到的结果: 此处查询的用户名 小甲鱼\'; DELETE FROM users; \',安全瞬间高涨。
  18. //SELECT * FROM users WHERE name='小甲鱼\'; DELETE FROM users; \''
  19. echo $sql.'<br />';
  20. ?>
复制代码

函数注意:

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

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

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












本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-5-26 06:01:11 | 显示全部楼层
谢谢版主分享~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-6 04:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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