簡體   English   中英

基本SQL注入?

[英]Basic SQL Injections?

之前的一個問題中我被告知我的查詢很容易被SQL注入。

get_stats = mysql_query("SELECT * 
                               FROM visitors 
                              WHERE site='$_GET[site]' 
                                AND date BETWEEN '$start_date' AND '$end_date' ");

解決這個問題最簡單的方法是什么? 你是否有關於注射問題的進一步閱讀? (我可能會想念谷歌的東西)。 謝謝!

使用准備好的陳述

在大多數情況下,Prepared Statements可以安全地將您的查詢與您的參數相結合。

$ _GET ['site']是一個直接來自瀏覽器中URL的值,這意味着用戶可以輕松地將此值更改為他們想要的任何值,您應該在將值發送到數據庫之前檢查/清理該值。

像這樣的東西將是一個開始,仍然可以使用更多的工作,有很多方法,我會創建一個自定義函數/類,以輕松地通過整個網站傳遞所有變量,這可以簡單地重復這樣的東西,像這樣

$site = mysql_real_escape_string($_GET['site']);
$start_date = mysql_real_escape_string($start_date);
$end_date = mysql_real_escape_string($end_date);

get_stats = mysql_query("SELECT * FROM visitors WHERE site='$site' AND date >= '$start_date' AND date <= '$end_date' ");

mysql_real_escape_string是這里最基本,最簡單的安全形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM