Java 如何将servlet仅保留到我的站点(某种身份验证)?

Java 如何将servlet仅保留到我的站点(某种身份验证)?,java,web-applications,servlets,Java,Web Applications,Servlets,我有一个网站,通过servlet向用户发送动态信息。它是无状态的,没有登录。这个特定站点使用了大量从客户端浏览器到服务器的doPost()和doGet()调用 我的问题是,如果有人阅读我的源代码,他们可以轻松地删除我面向公众的servlet URL,并以我的web服务器为代价获得一个免费的API 我怎样才能避免这种情况发生?我是否可以在JavaScript和Java之间使用某种不会增加明显延迟的身份验证包?我只希望我的网页上的用户能够调用面向公众的servlet。两个想法: REFERRER H

我有一个网站,通过servlet向用户发送动态信息。它是无状态的,没有登录。这个特定站点使用了大量从客户端浏览器到服务器的doPost()和doGet()调用

我的问题是,如果有人阅读我的源代码,他们可以轻松地删除我面向公众的servlet URL,并以我的web服务器为代价获得一个免费的API

我怎样才能避免这种情况发生?我是否可以在JavaScript和Java之间使用某种不会增加明显延迟的身份验证包?我只希望我的网页上的用户能够调用面向公众的servlet。

两个想法:

  • REFERRER HTTP标头以确保客户端来自 授权来源
  • 要求您服务的授权用户提供与其网站关联的API密钥

  • 虽然不是专家,但这可能会有所帮助:据我所知,像twitter这样的大型web API会使用这种方法。

    如果他们阅读他的资料,这两种方法都可能被欺骗。但我可能会这么做。如果你不想要完全的身份验证/授权,请尽最大努力。推荐人会有点困难,因为它是透明的——虽然它可以被欺骗,但攻击者并不清楚这是他们和免费API之间的唯一障碍。我希望有一些银弹s/w。那么godaddy或Google如何为此收取API费用呢?难道不是每个人都只是删除他们的网址而不是付费吗?他们是干什么的?(谢谢你在这方面花时间)…谷歌使用API密钥。但是,他们的许多API服务都不收费。他们的目标不是在API上赚钱,他们的目标是确保人们去谷歌获取信息和看到广告。唯一的选择是让你的用户登录(OAuth可以很容易地集成)@PaulProgrammer-当我增加你的评论时,你会得到分数吗?谢谢你的所有意见!非常有用!!谢谢@MathanMV,我正在看oauth,但对它的方向有点紧张。不知道我是否应该…同意oauth 2.0的一般观点。简单的解决方案是:使用OAuth1.0。它是稳定的,并且有很好的支撑。