我正在用Slim Microframework編寫一個REST風格的Webservice,並使用GET從mysql數據庫讀取數據(選擇查詢)以及POST/PUT/DELETE插入/更新/刪除數據庫中的行。帶有Slim框架的PHP RESTful Webservice,認證需要還是反對無狀態?
我的問題是現在,如果每個人都能夠寫入或刪除數據庫中的數據,這不是一個很大的安全問題嗎?但是我怎麼能夠阻止呢?我認爲REST中的ST代表狀態轉移(所以webservice是無狀態的),這與一個狀態是否存在矛盾。如果我將允許在數據庫中寫入的客戶端傳遞一些登錄數據,那麼一個壞人是否可以通過它獲取logindata和假請求,例如刪除所有條目?
那麼,最簡單的方法是什麼,我發現的唯一Slim Framework示例總是顯示路由示例,但不是如何保護它。
在Slim Framework中是否還有一些機會來實現我所需要的?它應該儘可能簡單,並且要求的響應速度幾乎與沒有認證或類似的響應一樣快。沒有像密碼這樣的敏感數據,對我來說,只需使用cURL命令行工具的每個人都可以刪除所有行或類似的東西就足夠了。
如果有人能解釋我該做什麼和/或舉例說明,那將會很棒。我還需要知道,我可能需要在允許發送請求的客戶機上進行更改。
非常感謝。
我想通了,這是使用apikey調用。但是我在Slim框架中找不到一個開箱即用的解決方案。相反,我發現框架作者的Git倉庫有一些Slim Extras,例如HTTPbasicAuth。在這裏找到︰https://github.com/codeguy/Slim-Extras/tree/master/Middleware現在我的問題是,如果我可以使用這個,而不是一個鍵,或者這不是在數據庫中插入/更新的權利。一個壞人是否仍然可以嗅探身份驗證數據(或者密鑰)和虛假請求?謝謝。 – 2013-02-27 16:02:23
http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ – Rawkode 2013-02-27 16:07:17
感謝這個鏈接,但它不是關於使用Slim框架。那我上面問的HTTPbasicAuth呢?我正在尋找Slim中的一些東西,但不確定這些東西是否有用。 Thx再次 – 2013-02-27 20:21:23