我有一个通过在页面中插入一段javascript来使用的web服务。 Javascript扫描页面中的某个字符串,并向我的ASP.NET JSON WebService发出请求。然后javascript使用JSON显示一些内容。
我希望做的是阻止任何人直接访问我的JSON服务。
该服务是使用jQuery Ajax请求访问的。
这可能吗?
最诚挚的问候, TheLorax
答案 0 :(得分:4)
我的经验主要是使用PHP,因此您可能必须将概念转换为ASP.NET;)
如果代码是同一个Web应用程序(或同一服务器实例)的一部分并且我想将其锁定,例如,它位于身份验证系统后面,我会在会话中存储一个变量,说明用户已经过身份验证。您可以使用ASP.NET和会话状态执行相同的操作。取决于Web服务或提供JSON的任何内容是否可以访问该用户会话状态。
另一种选择是在服务器端使用私钥创建某种散列密钥。通过您的请求将其传递给也知道私钥的JSON服务。这个解决方案的问题是确保JSON服务正确解密是一种协调,人们仍然可以通过其他方式使用JSON服务。
答案 1 :(得分:-1)
不是真的。
如果您有一个已知的用户组,则可以通过发出API密钥等来阻止他人访问您的服务。 但是,您的有效用户将能够以他们喜欢的任何形式获得您的JSON。
你可以尝试混淆事物,但这可能不值得付出努力。
由于你不能关闭它,你应该接受Web 2.0的混搭精神,如果有人访问你的服务并以你想到的新的,创新的方式呈现信息,那就很高兴。这应该会使您的服务更受欢迎。
如果以某种方式最终导致您的实际收入损失,您必须依靠合法的方式来阻止它,因为技术措施可以被规避。