2012-03-07 32 views
1

如果我在沒有編寫代碼的環境中關閉magic_quotes,我該如何檢查是否會出現任何問題?我有什麼要檢查?哪些功能可能無法工作?magic_quotes off - 可以破解代碼嗎?

+0

如果你有需要magic_quotes的代碼,那麼你應該更新它不會在PHP 5.4上運行 - magic_quotes現在已經被棄用很久了,PHP 5.4最終完全從語言中移除它。 – 2012-03-07 18:30:09

回答

1

magic_quotes開啓時,Magic Quotes會自動對提交的所有表單數據執行addslashes()。這意味着一個[\]被放置在數據中的每個['],[「],[]或null之前,因此That's nice將被自動轉換爲That\'s nice。這一切都發生在編碼甚至看到數據之前,只是傳遞一個字符串到下一頁(而不是數據庫),即使你根本不需要它們,也會用斜線打印。

0

不幸的是,我不認爲有一個簡單的答案。您需要查看您直接使用用戶輸入工作的任何地方。如果代碼很簡單,您可以搜索$ _GET和$ _POST的用法,但是至少沒有掃描代碼審查,您不可能找到這樣的所有內容。

有一件事我已經打破了很多,當我關掉它是SQL INSERT/UPDATE查詢某人寫了,他們已經包含請求參數不正確地轉義。

0

魔術引號會影響傳入的數據字符串。您使用$_GET$_POST的任何地方或此類變量都可能受到影響。

基本上,任何地方你接受用戶的數據。

注:更重要的是,你應該看看通過所有 SQL查詢,並確保任何輸入字符串逃脫!否則,你的代碼將容易受到SQL注入的攻擊。