我有浏览器游戏。有消息发送表格。
我没有对“message_content”变量进行真正的转义字符串函数。
有任何选项,用户可以在插入消息后进行任何更新?
我的意思是用户可以在里面写一个sql代码message_content
,可以UPDATE sql中的值吗?像更新users
集gold
= '9999' where username
= 'my_username'
非常感谢....而且这只是一个问题。别担心我已经做了mysql_real_escape_string
...
我有浏览器游戏。有消息发送表格。
我没有对“message_content”变量进行真正的转义字符串函数。
有任何选项,用户可以在插入消息后进行任何更新?
我的意思是用户可以在里面写一个sql代码message_content
,可以UPDATE sql中的值吗?像更新users
集gold
= '9999' where username
= 'my_username'
非常感谢....而且这只是一个问题。别担心我已经做了mysql_real_escape_string
...
请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 http://bobby-tables.com/php有一些示例可以帮助您入门。
该mysql_query
函数不允许一次执行多个语句。所以经常提到的例子是Robert'; DROP TABLE Students; --
行不通的。
这也意味着利用仅限于语句类型。因此,如果注入点位于INSERT
语句中,则只能利用该漏洞将任意值插入到该特定表中。
但是,仍然可以将数据库中的任意数据注入到该表中。如果攻击者将消息发送给自己,他将能够从数据库中读取任意数据,并且还可以在服务器上读写任意文件。
如果您不转义用户输入,可能会发生以下情况:
想象一下这个查询:
SELECT * FROM user WHERE login='$login'
$login
用户的输入在哪里。
现在用户在变量中插入以下内容:'; DROP TABLE user; --
将执行以下查询:
SELECT * FROM user WHERE login=''; DROP TABLE user; --'
这是一个非常通用的例子,但我希望你能明白