asp.net - 如何验证 Web 服务调用者是否是我的网站?

标签 asp.net javascript web-services web-applications

出于安全原因,我需要保证只有运行特定网站的 Web 客户端才能访问 Web 服务。我仅对域请求进行验证,但我需要做一些更可靠的事情。我认为破坏我的安全检查太容易了。

最佳答案

签署 token (我建议使用至少具有 SHA-1 的 HMAC)。 This site提供 ASP.NET 的示例代码;我不使用 .NET,因此无法验证此代码。

向客户端提供 token 及其 HMAC 签名。让客户端在每次请求时将其传递回 Web 服务。

在 Web 服务中,只需验证 HMAC 签名即可。

但是,如果您的 token 从未更改,某些恶意用户可能会在客户端代码中观察到它并复制它。您可以通过将 token 设置为时间戳并仅允许 token 在特定时间段内有效,或者通过以某种方式将 token 与特定用户绑定(bind)来规避此问题。

推荐人不足以作为安全措施;它们可以被代理删除或被恶意客户端伪造。

关于asp.net - 如何验证 Web 服务调用者是否是我的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800995/

相关文章:

java - JAXMServlet 的替代品?

asp.net - session 状态阻止并发处理的异步 ajax 调用

c# - 如何访问用户控件页面 ListView 中动态创建的表的文本框?

c# - 如何调用 Entity Framework 中返回动态列的存储过程?

javascript - 删除 ng-grid 中最后一行的删除功能?

javascript - UI-Router 的解析函数参数是如何解析的?

javascript - 将事件处理程序添加到 body 元素时触发多个事件

c#/asp.net - 如何捕获 "System.Web.HttpException: Request timed out"?

.net - XML 在现代 nTier 架构中扮演什么角色?

java - ejb中的Web服务问题