我試圖圍繞如何真正保護任何公開可用的ajax調用。如何防止AJAX端點上的DDoS?
讓我們說一個公共頁面上的JavaScript(所以沒有任何類型的用戶身份驗證)包含對PHP腳本(REST API或只是一個腳本,無所謂)的AJAX調用,它會執行很多繁重的操作。因此,任何用戶只需查看源代碼,找到AJAX調用,重建並執行它,然後在一秒內再次執行一百萬次,並以這種方式對您的網站執行DDoS操作,但效果並不好。起初我認爲HTTP_REFERER檢查可能會有所幫助,但是作爲任何頭字段,這也是可操作的(只是使用curl請求),所以安全性的提高不會太高。
下一個方法是關於使用會話id,cookie等爲每個頁面查看器構建某種訪問鍵的組合,並且當有人超出限制時,AJAX調用會遇到錯誤。聽起來很不錯,但只是通過清潔餅乾等,一切都會重新設置。所以也沒有真正的解決方案但是當然!使用IP!好想法!公共網絡中僅使用一個IP訪問互聯網的用戶將非常高興,如果一個歹徒會通過濫用電話阻止所有用戶的服務。所以,也沒有很好的解決方案。
所以,我真的被困在這裏,想不出任何好的答案來解決我的問題。
我也想過API密鑰或類似的東西。但是,這是一個也可以從JavaScript源中提取的信息。那麼,如何防止其他服務器以代理方式使用您的服務向您的用戶提供數據? (例如,你實現你的網站GMaps API(或任何其他API),有人利用你的腳本訪問API與您鍵)
TL;博士
有沒有真正保護什麼好的辦法你公開可查看的AJAX呼叫濫用它們來爲您的網站進行DDoS攻擊,在其他網站上展示您的數據等。
你可能想看看智威湯遜的。 JSON Web Tokens是一種開放的行業標準,用於在雙方之間安全地聲明索賠。 – Vatsal