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

最佳答案

签名 token (我建议至少将HMAC与SHA-1一起使用)。 This site提供ASP.NET的示例代码;我不使用.NET,所以无法验证此代码。

将 token 及其HMAC签名提供给客户端。让客户端将每个请求都传递回Web服务。

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

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

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

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

10-14 14:54
查看更多