2011-07-28 66 views
1

我正在爲某些數據庫表提供REST接口。 我想爲客戶提供一種動態獲取數據的方式。 例如通過HTTP對數據庫進行自由格式查詢

/客戶/ 1234?激活=真&性別= M &財富> 100000 & ......

這樣的想法是有查詢字符串作爲遊離形式成爲可能。 對於數據庫訪問,我會收集所有查詢參數並將它們附加到SQL where子句並返回響應。

我不確定在這裏是否有一個關鍵問題,我可能會錯過關於安全的問題。

這是一個好主意?如果是的話,你知道這樣的實施,你能指出我嗎?

+0

聽起來像是一個安全漏洞 - 肯定意味着用戶可能會篡改url來更改SQL?將這些參數提交給控制器的單個html表單應該足夠了。 – Chev

+0

這裏JPA的相關性是什麼?因爲你有它標記爲。 DataNucleus提供了一個REST接口,在後臺連接到數據庫,並允許一些查詢http://www.datanucleus.org/products/accessplatform_3_0/rest/api.html – DataNucleus

回答

0

我不確定在這裏是否有一個關鍵問題,我可能會錯過 關於安全性。

一個關鍵問題是阻止ffrom SQL注入。簡短閱讀here

0

好主意完全取決於數據庫擁有什麼樣的信息。用戶帳號:否/披薩店:是的。

Foreach ($_GET as $key => $value) { 
$clauses[] = $key.' = "'.$value.'"'; 
} 

$query = mysql_query('select * from pizza_parlors where '.explode(' and ',$clauses); 

但是我會做一個數組批准的搜索參數,以限制任何注射方法:

可以用PHP如下做到這一點。