人们如何使用这个安全漏洞?

时间:2013-06-05 13:58:31

标签: php security sql-injection mysql-real-escape-string

我有浏览器游戏。有留言发送表格。

我没有为“message_content”变量创建真正的转义字符串函数。

用户可以在插入消息后进行任何更新吗?

我的意思是用户可以在message_content中编写可以在sql中更新值的SQL代码?与更新users一样设置gold ='9999',其中username ='my_username'

感谢很多.... 而这只是一个问题。别担心我已经mysql_real_escape_string ...

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

mysql_query函数不允许一次执行多个语句。所以often mentioned example of Robert'; DROP TABLE Students; --无效。

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

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

答案 2 :(得分:0)

如果您没有转义用户输入,则可能发生以下情况:

想象一下这个问题:

SELECT * FROM user WHERE login='$login'

其中$login是用户的输入。

现在,用户将以下内容加入变量:'; DROP TABLE user; --

将执行以下查询:

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

这是一个非常通用的例子,但我希望你能得到这个想法