2011-07-31 59 views
1

我最近一直在閱讀很多有關使用jQuery直接調用ASP.NET頁面方法(用web方法屬性裝飾),而不是使用ASP.NET更新面板來滿足我的ajax要求的問題 - 而且大多數情況下這使得負載的感覺。什麼是防止Web方法濫用的好方法?

我的問題是,我應該採取什麼樣的措施來防止濫用這種面向公衆的方法。我很欣賞我目前的方法基本上沒有什麼不同,但他們至少通過默默無聞提供了一些安全性,這最終是我想實現的。

我還沒有真正找到任何關於此的文章,所以我假設它不被視爲安全問題,或者沒有一個好的解決方案。無論哪種方式,爲了我自己的理解,我很樂意聽取人們對此事的看法,以及人們可能提出的任何解決方案。

+0

你能舉一些具體的例子嗎? – Pindatjuh

+0

究竟是什麼樣的例子? – Jason

回答

2

我不確定你可以做些什麼關於面向公衆的方法。這裏要理解的重要一點是,當你說公衆面對時你是什麼意思。您的資源是否可供互聯網上的任何人訪問,或僅供您網站的用戶進行身份驗證?僅僅因爲一種方法被標記爲WebMethod,並不意味着每個人都可以訪問它。如果您在web.config中正確配置了身份驗證和授權規則,則可以拒絕對匿名用戶的訪問。我不確定這是否會回答你的問題,但這些是想到的一些想法。

+0

+1:不管使用的機制如何,如果沒有某種類型的授權,方法不應該被允許被調用。 – NotMe

+0

當我說公衆面對時,我的意思是基本上是一種可以很容易識別的Web方法,因此有人想要執行該方法。讓我舉個例子 - 說我有一個web方法來檢查電子郵件帳戶的有效性,我把它稱爲VerifyEmail--我想要的最後一件事就是有人使用該Web方法用於他們自己的目的並對我的服務器進行衝擊。 – Jason

1
+0

嗨 - 我讀過這個,但我主要關心公共方法 - 正如我在上面的註釋中的例子中所述 - 如果它可以通過Web瀏覽器從客戶端執行,那麼本文中的哪些方法我是否可以用來防止或至少使其更復雜,以供某人使用?我想很多信息都超出了我的理解,但當然,如果我想從客戶端調用,那麼只需使用Fiddler或類似的東西即可輕鬆查看和複製任何類型的令牌或加密?請糾正我,如果我完全誤解了! – Jason

+0

Jason在MSDN雜誌上看到Dino Esposito的偉大文章(鏈接在我的答案中)。他清楚地解釋了安全問題的要點。關於public webmethods(例如 - VerifyEmail) - 當然它們存在併爲匿名用戶提供一些服務,但這些方法不能啓用訪問或修改敏感/安全數據! – vladimir77

相關問題