ASP.NET WebHooks RC 1釋出

weixin_33858249發表於2016-03-20

正如訊息佇列能夠讓同一個組織內的多個應用相互通訊一樣, WebHooks也為來自不同組織的網站提供了一種以非同步的形式進行通訊的方法。

\\

從本質上說,WebHook就是一種回撥機制。使用者可以在WebHook提供者中註冊一個自定義的URL,提供者將在適當的時機通過這個URL將相關的事件以訊息的方式傳送給應用。比方說,使用者可以對Dropbox進行配置,當某個公司的Dropbox帳戶中新增了一個新檔案時,同時向該公司的審計與備份基礎設施發出一條通知。

\\

雖然從理論上說,這些功能完全有可能實現,但在現實世界中往往需要考慮到各種其他因素。如果忽視了這些因素,則惡意使用者可利用這種基礎設施發起拒絕攻擊服務,正如pingback曾經出現過的漏洞一樣。

\\

為了防止發生這方面的安全問題,WebHooks設計了一個驗證步驟。Dropbox的文件中是這樣寫的:

\\
\

當你輸入WebHooks URI時,就會自動向該URI傳送一個初始的“驗證請求”。驗證過程使用了一個HTTP GET請求,其中帶有一個名為challenge的查詢引數。而你的應用在對該請求的響應中也需要包含這個challenge引數。這個驗證過程請求的目的是確保你的應用確實希望通過該URI獲取通知資訊。即使你無意中輸入了錯誤的URI(或者有人試圖惡意地將你的伺服器設定為他的WebHook),由於你的應用無法正確地響應challenge請求,因此Dropbox仍然不會向該URI傳送任何通知。

\
\\

接收

\\

在RC 1版本中,ASP.NET WebHooks包含支援以下提供商的自定義“接收者”:

\\

同時,新版本還提供了一個通用的框架庫,可用於建立使用者自定義的接收者。但使用者必須將該接收者託管在公有的網站上,否則提供者將無法連線到這些接收者。

\\

提供

\\

ASP.NET還提供了一套框架,允許使用者提供自己的WebHooks,讓其他應用程式使用。這套框架包括兩個部分,一是WebHooks基礎設施本身,二是WebHooks註冊資訊的儲存機制。目前可直接使用的儲存機制包括SQL Server和Azure Table Storage。

\\

讀者可以在.NET Web Development and Tools部落格上獲取完整的教程與示例。同時可以在GitHub找到專案的原始碼,專案本身遵循Apache 2授權協議。目前的釋出候選版本需要ASP.NET MVC 5和WebAPI 2的支援。

\\

檢視英文原文ASP.NET WebHooks RC 1

相關文章