gpt4 book ai didi

php - PHP 表单的 SQL 注入(inject)威胁?

转载 作者:可可西里 更新时间:2023-11-01 00:24:07 27 4
gpt4 key购买 nike

我试图证明在 PHP 中准备语句的必要性,但我遇到了一点问题,因为 PHP 使用通过表单传递的字符串做了一些很奇怪的事情。

我试图“打破”的陈述很简单:

SELECT username FROM users WHERE username = '$username' AND password = '$password'

但是为密码传递 X' 或 TRUE;-- 之类的操作实际上不起作用,因为 PHP 会自动转义单引号并将语句转换为:

SELECT username FROM users WHERE username = '$username' AND password = 'X\' or TRUE;--'

并且由于转义单引号,密码相等性保持不变。这个陈述被认为是安全的吗?不然怎么破?

最佳答案

听起来您好像启用了魔术引号。我绝对不会认为该声明是安全的,因为如果您将其移动到运行 PHP 5.4 的服务器上,它将完全容易受到攻击。魔术引号长期以来一直是一个被弃用的功能,它会扰乱应用程序的其他部分,所以不要依赖它。

为了演示,只需在 php.ini 中设置 magic_quotes_gpc = Off

关于php - PHP 表单的 SQL 注入(inject)威胁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767954/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com