2013-06-05 32 views
-2

我有瀏覽器遊戲。有消息發送表單。人們如何使用這個安全漏洞?

我沒有對「message_content」變量進行真正的轉義字符串函數。

有什麼選擇,用戶可以在插入消息後做出任何更新?

我的意思是,用戶可以寫在message_content可更新的SQL值的SQL代碼?像更新users設置gold = '9999',其中username = 'my_username'

非常感謝.... 而且它只有一個問題。別擔心,我已經作出mysql_real_escape_string ...

+1

[如何防止SQL注入PHP?](http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php?rq=1) –

回答

3

請了解使用參數化查詢,最好與PDO模塊,以保護您的網絡應用程序。 http://bobby-tables.com/php有一些例子可以幫助你入門。

0

如果不逃用戶輸入會出現以下情況:

想象一下這樣的查詢:

SELECT * FROM user WHERE login='$login' 

其中$login是用戶的輸入。

現在,用戶insers變量中的以下內容:'; DROP TABLE user; --

下面的查詢將被執行:

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

這是一個很普通的例子,但我希望你的想法

1

mysql_query函數不允許一次執行多個語句。所以often mentioned example of Robert'; DROP TABLE Students; --將無法​​正常工作。

這也意味着開發僅限於語句類型。因此,如果注入點位於INSERT語句中,則只能利用該漏洞將任意值插入該特定表中。

但是,仍然可以從數據庫向該表中注入任意數據。如果攻擊者將消息發送給自己,他將能夠從數據庫中讀取任意數據,並且還可以讀取和寫入服務器上的任意文件。