我有浏览器游戏。有留言发送表格。
我没有为“message_content”变量创建真正的转义字符串函数。
用户可以在插入消息后进行任何更新吗?
我的意思是用户可以在message_content
中编写可以在sql中更新值的SQL代码?与更新users
一样设置gold
='9999',其中username
='my_username'
感谢很多....
而这只是一个问题。别担心我已经mysql_real_escape_string
...
答案 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; --'
这是一个非常通用的例子,但我希望你能得到这个想法