」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > mysql_real_escape_string()和`mysql_escape_string()

mysql_real_escape_string()和`mysql_escape_string()

發佈於2025-03-22
瀏覽:844

Are `mysql_real_escape_string()` and `mysql_escape_string()` Enough to Prevent MySQL Injection Attacks?
mySQL注入攻擊:更深入的潛水

確保Web應用程序的安全性是至關重要的。本文探討了使用mysql_real_escape_string()和mysql_escape_string()在防止SQL攻擊中進行的有效性。

[)對SQL注射沒有完整的保護。這是因為它僅是為了逃避查詢中的PHP變量。它無法處理逃逸的表或列名稱或限製字段。

的漏洞考慮以下示例:如果$ field或$ value包含惡意輸入,則此查詢很容易受到SQL注入的影響。黑客可以製作一個惡意查詢,該查詢繞過逃脫並執行未經授權的命令。

特定的攻擊矢量

這些利用利用Internet Explorer和PHP的Charset處理中的漏洞。他們可以允許黑客執行任意SQL查詢。

示例如何利用這些攻擊:), mysql_real_escape_string($ argv [2]), mysql_real_escape_string($ argv [3]));

input 1:

返回urls以“ http:///www.reddit.com”開頭返回URLS exploit)

Input 3: Executes unexpected SQL queries

The Solution: Prepared Statements

Experts recommend using prepared statements instead of escaping functions.準備好的語句是服務器端技術,僅執行僅執行有效的SQL。這種方法提供了針對已知和未知的SQL注入的全面保護。

使用pdo

$sql = "SELECT number FROM PhoneNumbers " .
       "WHERE " . mysql_real_escape_string($field) . " = " . mysql_real_escape_string($value);

Conclusion

While mysql_real_escape_string() and mysql_escape_string() offer some protection against SQL注射,它們不足以實現完整的安全性。準備的語句是魯棒數據庫安全性的推薦方法。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3