2013-02-13 44 views
1

我有一个网站,通过servlet发送动态信息给用户。它是无状态的,没有登录。这个特定的站点使用从客户端浏览器到服务器的大量doPost()和doGet()调用。如何仅将Servlets保留到我的网站(某种认证)?

我的问题是,如果有人阅读我的源代码,他们可以轻松地将我面向公众的servlet URL撕掉,并在我的Web服务器费用中拥有免费的API。

我该如何防止这种情况发生?我可以在JavaScript和Java之间使用哪种认证包,但不会增加明显的延迟?我只想让我的网页上的用户能够调用面向公众的servlet。

回答

1

不是专家,但这可能有所帮助:http://oauth.net/因为我知道像Twitter这样的大型网络API。

+0

谢谢@MathanMV,我在看oauth,但对它的方向有点紧张。 http://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/。不知道我是否应该... – Chris 2013-02-14 01:22:56

+1

同意oauth 2.0的一般情绪。简单的解决方案:使用oauth 1.0。它稳定并得到很好的支持。 – PaulProgrammer 2013-02-14 18:49:01

1

两个想法:

  1. REFERRER HTTP标头,以确保客户端即将从 授权源
  2. 需要授权服务的用户提供捆绑到他们的网站的API密钥。
+0

如果他们阅读他的来源,这些事情都可能被欺骗。但这是我可能会做的。尽力而为,如果你不想完全认证/授权。 – 2013-02-13 23:11:19

+1

引用者有点难度,因为它是透明的 - 虽然它可以被欺骗,但攻击者并不明显知道这是站在他们和自由API之间的唯一东西。 – PaulProgrammer 2013-02-13 23:17:17

+0

我希望有一些银子弹S/W。那么,godaddy或谷歌如何收取API?难道大家只是撕掉他们的网址,而不是付钱?他们在做什么? (感谢你在这个时候顺便说一句)... – Chris 2013-02-13 23:38:00

相关问题