【问题标题】:How can I block access to my servlets and jsps in app engine?如何在应用引擎中阻止对我的 servlet 和 jsps 的访问?
【发布时间】:2011-08-17 17:50:22
【问题描述】:

我已经构建了一个 google 应用程序引擎,将其用作我的 android 应用程序的数据库,所以我不希望任何人在我上传后访问我的 web 应用程序。我怎样才能阻止它?我考虑过使用密码作为参数,如果密码不匹配则显示错误页面,但这非常危险且不够。 还有其他方法吗?

谢谢!

【问题讨论】:

    标签: java android google-app-engine jsp servlets


    【解决方案1】:

    大概您希望您的 Android 应用的用户能够访问您的应用,而不是其他人。这是不可能的:您的 Android 应用可以生成的任何内容都可以在没有您的应用的情况下独立生成。

    您最多可以在您的应用程序中嵌入一个秘密令牌并使用它为请求生成签名,但有人提取该秘密并直接使用它并不难。

    【讨论】:

    • 是的,我半小时前刚看了水果忍者的源码哈哈。。我想我会用密码参数作为我的“安全”。。我无能为力关于它..
    【解决方案2】:

    只需在 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 模式。

    【讨论】:

    • 如何从 android 应用发送我的 google 帐户的登录值(我猜是管理员是上传 google 应用的那个)?
    • 我不确定您是否希望在每个 Android 应用上都使用您的管理员用户名和密码。如果用户必须注册您的应用程序,则通过 SSL 向用户发送个人用户名和密码并使用它进行身份验证。在这种情况下,我将通过不在 web.xml 中强制执行 auth-constraint 来使 URL 可公开访问。但是,我会让您的应用使用 SSL 的 URL - 通过将 user-data-constraint 设置为 CONFIDENTIAL 来做到这一点 - code.google.com/appengine/docs/java/config/…
    • 你说得对,我认为将我的 google 帐户详细信息留在源代码中并不那么聪明。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多