2012-07-20 61 views
0

當客戶註冊一個網站時,我們想讓他們知道用戶名/電子郵件是否可用。 我們有一個httphandler,用於提供一個jquery腳本,用於向客戶顯示他們所需的用戶名/電子郵件是否可用。防止濫用ASP.net處理程序

問題是: 當您在小提琴手中查看請求時,可以清楚地看到服務被調用。 它顯示/[email protected]

從處理程序中,返回簡單的0或1以指示名稱/地址是否可用。

我擔心的是,這似乎是一個重大的安全問題,對於沒有經驗的人來說很容易被利用來發現網站上的所有用戶。

因此,朋友們,你如何保護你的網站信息,並仍然允許ajax回調提供一個很好的用戶體驗?

謝謝。 希思

回答

0

你在這裏有點偏執。每個允許用戶註冊的網站都需要做類似的事情。你可以合理地做的一件事是爲處理程序的處理添加一個輕微的延遲(可能是2或3秒)以減少暴力攻擊的可能性或緩解。坦率地說,我不認爲有人會打擾。

另一種選擇是在用戶註冊實際激活之前忽略重複的電子郵件併發送驗證電子郵件。如果新用戶嘗試使用現有電子郵件,則原始電子郵件所有者會收到驗證並可以取消或忽略該驗證。但我不推薦這個。

我想說絕大多數我用過的網站都會馬上說「這個電子郵件地址已經註冊了......你忘記了密碼了嗎?」只知道給定網站上已經使用的電子郵件地址本身並不代表安全漏洞。

0

一種可能的解決方案是僅啓用POST請求該方法。

而且由於您無法在未經您授權的情況下從其他域的JavaScript(XSS - 跨站點腳本)調用服務,您將受到保護。

但是,這種技術可以防止惡意用戶調用您的Web服務來發現用戶名,但這不會阻止用戶自動化一個進程來模擬用戶在文本框中輸入數據以強制對服務進行調用,在這種情況下,或許您可以允許每個用戶在一段時間內處理多個請求。

你可以繼續使用Session對象從您的網絡服務的嘗試次數的軌道

另一個approac將是一個re Captcha添加到您的網站,但是這會降低響應的級別,如果你使用的允許您的用戶可以捕獲用戶名,只要他們寫信給您,即可致電您的服務。實施將要求您的用戶編寫自動生成的驗證碼以提交您的數據