聊一聊php程序的sql注入攻击与字符转义问题

本文探讨了PHP程序中的SQL注入攻击,重点介绍了数据转义的重要性,特别是魔术引号功能的废弃以及相关替代函数如addslashes、stripslashes等的使用。建议在与数据库交互时使用DBMS特定的转义函数,如mysqli_real_escape_string,以增强安全性。
摘要由CSDN通过智能技术生成

SQL注入攻击其实就是对数据转义不完全,破坏了预期的sql查询语句的结构,那么今天来聊一聊数据的转义与清理,做好它就能避免这类型的攻击。

php程序曾经出现过魔术引号magic_quotes功能,开启时会自动对数据转义,该功能从5.3版本起废止,并在5.4版本中移除,他们是以下三个:

magic_quotes_sybase:
开启这个选项后,将用单引号对单引号转义,其他字符不转义。默认关闭,可在运行时修改,ini_get()ini_set()获取和设置状态

magic_quotes_gpc:
为 GPC (Get/Post/Cookie) 操作设置 magic_quotes 状态。 当 magic_quotes 为 on,所有的 ' (单引号)、" (双引号)、\(反斜杠)和 NUL's 被一个反斜杠自动转义。如果 magic_quotes_sybase 也是 ON,它会完全覆盖 magic_quotes_gpc。 两个指令都启用意味着只有单引号被转义为 ''(用单引号对单引号转义)。 双引号、反斜杠和 NUL's 不会被转义。bool get_magic_quotes_gpc ( void )获取当前 magic_quotes_gpc 的配置选项设置,注意尝试在运行时设置 magic_quotes_gpc 将不会生效,只能在系统级别关闭。

magic_quotes_runtime:
如果启用了 magic_quotes_runtime,大多数返回任何形式外部数据的函数,包括数据库和文本段将会用反斜线转义引号。 如果启用了 magic_quotes_sybase,单引号会被单引号转义而不是反斜线。bool set_magic_qu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值