如何阻止在应用程序引擎中访问我的servlet和jsps?

问题描述:

我已经构建了一个谷歌应用程序引擎,将其用作我的Android应用程序的数据库,因此我不希望任何人在上传之后访问我的Web应用程序。我怎样才能阻止它?我以为使用密码作为参数,如果密码不匹配显示错误页面,但这是非常危险的,并不足够。 还有别的办法吗?如何阻止在应用程序引擎中访问我的servlet和jsps?

谢谢!

只需为web.xml添加一个安全约束,例如

<security-constraint> 
     <web-resource-collection> 
      <url-pattern>/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>admin</role-name> 
     </auth-constraint> 
    </security-constraint> 

您将需要为您的客户端应用程序定义一些身份验证机制,尽管它可以通过例如,使用SSL并通过Android应用程序发送登录值。在这种情况下,请确保您通过web.xml打开您的应用使用的URL模式。

+0

如何从Android应用程序发送我的Google帐户(我猜管理员是上传谷歌应用程序的)的登录值? – Elad92 2011-05-03 14:11:15

+0

我不确定你会希望你的管理员用户名和密码在每个Android应用上。如果用户必须注册您的应用程序,然后通过SSL发送用户个人用户名和密码,并使用它进行身份验证。在这种情况下,我会通过不在web.xml中强制执行auth约束来公开访问URL。但是,我会让您的应用使用SSL的网址 - 通过将用户数据约束设置为CONFIDENTIAL来执行此操作 - http://code.google.com/appengine/docs/java/config/webxml.html#Secure_URLs – planetjones 2011-05-03 14:28:09

+0

您是对的我认为离开我的谷歌帐户的详细信息在源代码中并不那么聪明。 – Elad92 2011-05-03 15:01:07

想必您希望您的Android应用的用户能够访问您的应用,而不是其他人。这是不可能的:您的Android应用可以生成的任何内容都可以在您的应用中独立生成。

充其量,您可以在您的应用程序中嵌入一个秘密令牌,并使用它来为请求生成签名,但对于某人提取该秘密并直接使用它并不困难。

+0

是的,我刚刚看了半小时前的水果忍者的源代码哈哈..我想我会使用密码参数作为我的“安全”..没有什么我可以做的关于它.. – Elad92 2011-05-04 19:51:48