0
A
回答
2
您可能正在尋找CSRF(跨站點請求僞造)保護。問題是您的網站不知道AJAX請求來自哪裏。普遍接受的解決方案是創建一個從您的站點發送的令牌,該令牌需要隨AJAX請求一起發送。
此令牌對用戶會話是唯一的,並輸出到頁面HTML的某處。這使得其他站點難以捕獲此令牌。
給你基本的想法,你會做這樣的事情:
$_SESSION['csrf_token'] = md5(uniqid(rand(), TRUE));
然後,你可以例如輸出這是一個JavaScript變量
<script>
window.CSRF_TOKEN = '<?php echo $_SESSION['csrf_token']; ?>';
</script>
如果你碰巧使用jQuery ,你可以使用ajaxSend()
令牌添加到每個請求
$.ajaxSend(e, jqXHR, settings) {
if (!settings.data) settings.data = {};
settings.data['csrf_token'] = window.CSRF_TOKEN;
}
最後,在後端,你會檢查$_REQUEST['csrf_token'] ==
$ _SESSION ['csrf_token']`來驗證請求。如果可能的話,這些令牌一次性使用通常是個好主意。存儲令牌生成的時間並確保它在合理的時間範圍內使用也是一個好主意。
+0
謝謝你這個很好的答案我現在明白了 – user1801625
+0
@ user1801625沒問題。很高興我能幫上忙 :) –
相關問題
- 1. ajax安全性?
- 2. 如何修復getimagedata操作不安全
- 3. 如何修改索引安全性Elasticsearch?
- 4. Opa安全和bug修復
- 5. Javascript修改安全性?
- 6. Ajax,PHP和安全性?
- 7. 如何修復? DeprecationWarning:「全球性」已過時,使用「全球」
- 8. Android apk安全性如何安全
- 9. CakePHP的安全性如何,我們如何提高安全性?
- 10. 如何修復Trac安裝
- 11. 如何修復PHP模塊線程安全/非線程安全的不匹配?
- 12. 將ajax請求傳遞給Codeigniter控制器的安全性如何安全
- 13. https的安全性如何?
- 14. iBeacon安全性如何?
- 15. PreparedStatements的安全性如何?
- 16. 如何修復oAuth2令牌+彈簧安全
- 17. 如何修復SUPEE-9652解決Zend Framework的安全問題
- 18. WCF WebService安全性:如何在WebService上使用安全性?
- 19. 如何修改Request.JSON以滿足跨域安全性
- 20. jQuery ajax安全
- 21. AJAX提交表單的安全性?
- 22. AJAX安全性和用戶管理
- 23. 使用SpringMVC和jQuery的Ajax安全性
- 24. javascript遊戲中的ajax安全性
- 25. 通過AJAX調用URL的安全性
- 26. POST方法,Ajax和安全性?
- 27. Ajax提交表單安全性?
- 28. 發送ajax的安全性請求
- 29. 如何實現安全修剪的Html.RenderAction?
- 30. 如何在laravel 5中添加ajax get request的安全性?
您正在尋找術語'CSRF保護'。 – arkascha
這個問題相當模糊,但我同意@arkascha,你似乎在尋找CSRF保護。 – Mahn
什麼是CSRF在哪裏可以找到關於該指南的指南? – user1801625