出于安全原因,我需要保证只有运行特定网站的 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/