PHP表单的SQL注入威胁?

Jen*_*rer 3 php sql sql-injection

我试图在PHP中证明需要准备好的语句,但是我遇到了一些问题,因为PHP通过表单传递字符串来做一些方便的奇怪事情.

我试图"破解"的陈述很简单:

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

但是做一些像X' or TRUE;--输入密码的东西实际上并不起作用,因为PHP会自动转义单引号并将语句转换为:

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

由于单引号转义,密码相等性保持不变.这种说法是否安全?如果没有,它怎么能被打破?

Ry-*_*Ry- 5

听起来你有魔术引号打开.我肯定不会认为该语句是安全的,就好像你将它移动到运行PHP 5.4的服务器一样,它将完全容易受到攻击.魔术引号长期以来一直被弃用,它可能会破坏应用程序的其他部分,所以不要依赖它.

要演示,只需magic_quotes_gpc = Off在php.ini中设置即可.