BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ASP.NET WebHooks RC 1发布

| 作者 Jonathan Allen 关注 595 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2016年3月21日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

正如消息队列能够让同一个组织内的多个应用相互通信一样, 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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT