2009-06-18 107 views
2

我有一个web服务,通​​过在页面中插入一段javascript来使用。 JavaScript扫描页面中的某个字符串,并向我的ASP.NET JSON WebService发出请求。然后JavaScript使用JSON来显示一些内容。防止直接访问JSON Web服务

我想做的就是防止任何人直接访问我的JSON服务。

该服务使用jQuery Ajax请求进行访问。

这可能吗?

最好的问候, TheLorax

回答

4

我的经验主要是用PHP,所以你可能需要的概念,ASP.NET转换;)

如果代码是相同的Web应用程序的一部分(或在同一个服务器实例),我想为了锁定它,它在身份验证系统后面,我在会话中存储了一个变量,表示用户已通过身份验证。您可能能够对ASP.NET和会话状态做同样的事情。取决于Web服务或提供JSON的任何服务是否有权访问该用户会话状态。

另一种选择是在服务器端用私钥种子创建某种哈希键。通过您的请求传递给也知道私钥的JSON服务。这种解决方案的问题在于确保JSON服务正确解密有点协调,而且人们仍然可以通过其他方式使用JSON服务。

-1

不是真的。

如果您有一个已知的用户组,您可以通过发出一个API密钥等来阻止他人访问您的服务。 但是,您的有效用户将能够以任何形式访问您的JSON。

你可以尝试混淆事物,但这可能是不值得的。

由于您无法关闭此功能,因此您应该接受Web 2.0的混搭精神,如果有人访问您的服务并以您甚至没有想到的新创新方式呈现信息,请高兴。这应该会让你的服务更受欢迎。

如果它以某种方式最终导致了实际收入的损失,那么必须依靠合法的方法来阻止它,因为技术措施可以被规避。