我们需要从数据发布给向我们提供服务的合作伙伴。我们希望通过表格帖子来做到这一点,以保持简单。
我们将使用JavaScript等将表单数据(id)发布到服务提供商网站上的表单。服务需要获取此ID并向用户显示一些关联数据。我们将此帖子描述为其服务器上的表单,然后在弹出窗口中显示结果。如果用户对相关数据感到满意,他们将在弹出窗口(位于服务提供商服务器上)的表单上点击提交,服务提供商将发布到我们服务器上的控制器。
我们需要确保只有我们的服务器可以发布到他们的页面,只有他们可以发布到我们的页面。
我们正在使用MVC3。他们正在使用他们选择的网络技术。
有关最简单,最安全的方法的任何建议。显然需要防止重放攻击,并确保它们是唯一可以发布给我们的攻击。</ p>
答案 0 :(得分:3)
我们希望通过表单发布这些内容以保持简单。我们会发布 在他们的服务器上的网页,他们将做一些处理和发布 数据返回到我们服务器上的控制器操作。
啊不,那是不可能的。如果您的HTML <form>
其操作指向某个网址(无论此网址是否位于您的服务器或第三方服务器上),则在提交此表单时,浏览器将POST到此网址并且重定向到它。这意味着虽然您可以将请求发送到远程源,然后它可能会查询您域上的某些控制器操作,但您将无法在浏览器中显示此控制器操作的执行结果,因为浏览器将显示执行此远程URL的结果。
因此,一种技术是将HTML <form>
POST发送给您的控制器操作,该操作本身会将请求委托给远程服务(使用WebClient),然后将一些视图返回给用户。
现在剩下的就是要求远程服务器的网络管理员仅允许来自Web服务器IP地址的HTTP请求。
当然,这使得用户可以为您的控制器操作制作HTTP请求,从而间接地命中远程服务。防止这种情况发生的唯一可能方法是使用身份验证并拒绝任何人对此控制器操作的公共访问。