我一直在尋找一種方法來解決這個問題,但沒有成功,我想也許這裏有人可以幫忙嗎? 我想在我的.Js文件中使用一個祕密密碼,但是我不能直接在文件中寫入它,因爲每個人都可以在訪問源代碼時看到它。例如,我需要使用ajax將此密碼發送到另一個頁面,以確保HttpRequest來自我的網站而不是另一個僞造的httprequest。
這是可能的,因爲我已經嘗試了其他所有認證表單,但沒有幫助。
我使用asp.net和HttpHandler作爲返回數據的頁面。防止僞造HttpRequests
0
A
回答
0
你可以做的是生成密鑰使用PHP等,從而有效達到設定時間:
$password = "some random string";
$key = md5($password . $_SERVER['REQUEST_TIME']) . "|" . $_SERVER['REQUEST_TIME'];
你知道什麼時候被生成的密鑰通過這種方式,如果它被篡改的原因是:
function check($key) {
list($hash, $timestamp) = explode("|", $key, 2);
if ($hash !== md5($password . $key)) {
throw new Exception("Naughty!");
}
if ($timestamp < $_SERVER['REQUEST_TIME'] < 60*60) {
throw new Exception("too old");
}
}
不好的一面是不經常刷新頁面的人(在我的例子中是1小時)他們的密鑰將過期。
另一個問題是,你的'攻擊者'在技術上可能會先刮一個頁面來獲得一個新的密鑰並使用它,並在到期時再次擦除等等。
該解決方案非常適合防止盜鏈。
0
這是如何完成的in MVC。不幸的是,它看起來並沒有像WebForms一樣的安全性(至少據我所知)。
相關問題
- 1. 防止僞造元素推送內容
- 2. java - 我如何防止跨站點僞造請求
- 3. 防止iOS/Android用戶僞造他們的GPS位置
- 4. 防止Liferay中的跨站點請求僞造
- 5. 在Rails中防止僞造的測試控制器方法
- 6. $ _SERVER ['SERVER_NAME']是僞造/僞造的嗎?
- 7. 「僞造」 JavaScript構造
- 8. Bootsrap防止打印造型
- 9. 如何防止僞造的發佈到像/不像系統的PHP
- 10. 如何防止使用Perl和Apache進行跨站點請求僞造?
- 11. 在Perl調試器中防止模塊之間的僞造觀察輸出
- 12. iOS停止隨機發送httprequests [鈦]
- 13. mockito - 僞造addObserver
- 14. 僞造ASP.NET頁面
- 15. 僞造會話/ Cookies?
- 16. 僞造包發送
- 17. 映射HttpRequests
- 18. 如何使用防僞造令牌與ajax wcf服務
- 19. ColdFusion - 預防 - 跨站點請求僞造(CSRF)
- 20. 如何插入防僞造令牌使用Clojure Enlive
- 21. 僞元素和按鈕標記:如何防止僞元素被點擊?
- 22. 防止jquery移動從造型元素
- 23. 使用委託構造,防止泄漏
- 24. 僞造存儲庫 - 僞造查找方法
- 25. PHP安全的方式把URL的形式,以防止從XSS /跨站請求僞造跨站請求僞造攻擊
- 26. RESTful RAILS和Android HttpRequests
- 27. 無效防僞錯誤
- 28. 的防僞標記錯誤
- 29. 驗證防僞的問題
- 30. 防止僅使用子僞選擇器的默認功能
大多數主要平臺都包含某種本地防僞令牌。如果我們知道您使用的是什麼Web框架,這將有所幫助。 – 2011-04-28 20:50:45
ASP.NET 3.5是你的意思嗎? – 2011-04-28 20:52:19