-2

我有浏览器游戏。有消息发送表格。

我没有对“message_content”变量进行真正的转义字符串函数。

有任何选项,用户可以在插入消息后进行任何更新?

我的意思是用户可以在里面写一个sql代码message_content,可以UPDATE sql中的值吗?像更新usersgold= '9999' where username= 'my_username'

非常感谢....而且这只是一个问题。别担心我已经做了mysql_real_escape_string...

4

3 回答 3

3

请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 http://bobby-tables.com/php有一些示例可以帮助您入门。

于 2013-06-05T14:07:17.520 回答
1

mysql_query函数不允许一次执行多个语句。所以经常提到的例子是Robert'; DROP TABLE Students; --行不通的。

这也意味着利用仅限于语句类型。因此,如果注入点位于INSERT语句中,则只能利用该漏洞将任意值插入到该特定表中。

但是,仍然可以将数据库中的任意数据注入到该表中。如果攻击者将消息发送给自己,他将能够从数据库中读取任意数据,并且还可以在服务器上读写任意文件。

于 2013-06-05T16:29:58.883 回答
0

如果您不转义用户输入,可能会发生以下情况:

想象一下这个查询:

SELECT * FROM user WHERE login='$login'

$login用户的输入在哪里。

现在用户在变量中插入以下内容:'; DROP TABLE user; --

将执行以下查询:

SELECT * FROM user WHERE login=''; DROP TABLE user; --'

这是一个非常通用的例子,但我希望你能明白

于 2013-06-05T14:07:34.787 回答