我正在爲某些數據庫表提供REST接口。 我想爲客戶提供一種動態獲取數據的方式。 例如通過HTTP對數據庫進行自由格式查詢
/客戶/ 1234?激活=真&性別= M &財富> 100000 & ......
這樣的想法是有查詢字符串作爲遊離形式成爲可能。 對於數據庫訪問,我會收集所有查詢參數並將它們附加到SQL where子句並返回響應。
我不確定在這裏是否有一個關鍵問題,我可能會錯過關於安全的問題。
這是一個好主意?如果是的話,你知道這樣的實施,你能指出我嗎?
我正在爲某些數據庫表提供REST接口。 我想爲客戶提供一種動態獲取數據的方式。 例如通過HTTP對數據庫進行自由格式查詢
/客戶/ 1234?激活=真&性別= M &財富> 100000 & ......
這樣的想法是有查詢字符串作爲遊離形式成爲可能。 對於數據庫訪問,我會收集所有查詢參數並將它們附加到SQL where子句並返回響應。
我不確定在這裏是否有一個關鍵問題,我可能會錯過關於安全的問題。
這是一個好主意?如果是的話,你知道這樣的實施,你能指出我嗎?
我不確定在這裏是否有一個關鍵問題,我可能會錯過 關於安全性。
一個關鍵問題是阻止ffrom SQL注入。簡短閱讀here。
好主意完全取決於數據庫擁有什麼樣的信息。用戶帳號:否/披薩店:是的。
Foreach ($_GET as $key => $value) {
$clauses[] = $key.' = "'.$value.'"';
}
$query = mysql_query('select * from pizza_parlors where '.explode(' and ',$clauses);
但是我會做一個數組批准的搜索參數,以限制任何注射方法:
可以用PHP如下做到這一點。
聽起來像是一個安全漏洞 - 肯定意味着用戶可能會篡改url來更改SQL?將這些參數提交給控制器的單個html表單應該足夠了。 – Chev
這裏JPA的相關性是什麼?因爲你有它標記爲。 DataNucleus提供了一個REST接口,在後臺連接到數據庫,並允許一些查詢http://www.datanucleus.org/products/accessplatform_3_0/rest/api.html – DataNucleus