我使用jquery POST調用來獲取數據以顯示在我的網站的各個部分。如何防止惡意使用jQuery post handler?
通常,它們POST到一個單獨的'ajax_handler.php'頁面,該頁面讀取請求的參數並返回相關數據。典型的參數可能是'get_order_details',123
我怎麼能阻止用戶發佈到腳本來嘗試和檢索他們不應該能夠的數據?例如,我知道我可以驗證數據是否屬於當前登錄的用戶,但是如何阻止用戶猜測可能存在'get_some_info'的處理程序?
因爲用戶甚至可以直接從URL運行javascript,所以這似乎是一個主要的安全問題,因爲客戶端將有權訪問SESSION和COOKIE數據(否則我將使用它來保證安全)。
我想我可以先用隨機字符串命名我的每個處理程序標識符,但我寧願不要損害我的代碼的易讀性。
我已閱讀過有關'auth令牌'的信息,但如果用戶通過地址欄運行javascript,auth令牌將以完全相同的方式傳遞/訪問,從而使其成爲冗餘。除非我誤解了某些東西? – cusimar9 2011-04-27 20:32:21
這對你的用戶來說是一件糟糕的事情,而不是互聯網應該如何工作。這也是安全通過默默無聞,因爲用戶可以很容易地看到你提供每個請求的任何「校驗和」... – meagar 2011-04-27 20:57:26
@ cusimar9 - 不,他們將不得不加載正確的頁面首先獲得令牌。沒錯,他們可以進入頁面,查看源代碼,獲取令牌,但是在那一點上,如果他們通過在地址欄中輸入請求來提交請求,那麼它們有什麼關係?這種方法可以防止他們「盜鏈」請求。爲了工作,您需要爲每個請求重新生成參數。因此,如果他們能夠訪問特定的數據庫ID,他們仍然可以獲得每個ID,但不能以自動方式獲取,至少他們每次都必須加載整個頁面。 – Cfreak 2011-04-27 22:10:43