2011-01-23 53 views
0

我正在開發一個寵物項目。我有一個PHP類。在HTML中,我創建了該對象的實例。所以同一頁面可以包含很多實例。現在,我必須進行ajax調用。 ajax調用基於對象的實例。在ajax調用中發送的數據可以包含數據庫表的名稱等。我想知道這是多麼安全。有什麼想法嗎?在AJAX中使用PHP對象值

回答

1

攻擊者想知道:

  1. 怎麼滑的東西,
  2. 如何在滑

你放棄2號免費。

1

最好調用一個函數,它知道要查詢的數據庫的字段並將傳遞的值作爲參數。

+0

我明白你的觀點。但唯一的問題是表名是對象實例的參數。我根本不知道如何傳遞這個表名。 – abhisek 2011-01-26 04:01:32

0

好,考慮這種情況下:

a)您有一個JavaScript函數,它的AJAX調用您的服務器上執行一個查詢,它是這樣的:

function doQuery(tablename, fieldname, whereclause) { ... } 

b)在服務器,動態地使用AJAX調用的經過參數生成一個查詢:

$query = "SELECT $fieldname FROM $tablename WHERE $whereclause"; 

什麼是從注入阻止惡意用戶在您的AJAX函數的調用與

fieldname = '*' 
tablename = 'mysql.user' 
whereclause = '1=1' 

你最終

SELECT * from mysql.user WHERE 1=1 

和你的整個MySQL用戶名/密碼,集合去高高興興地出了門。

永遠永遠不會允許用戶提供的數據控制你的代碼執行什麼操作,特別是當涉及到與「外部」系統(如數據庫)的接口時。