【问题标题】:How to retrict access to myapplication.appspot.com - google app engine?如何限制对 myapplication.appspot.com 的访问 - 谷歌应用引擎?
【发布时间】:2011-05-14 13:39:07
【问题描述】:

对于谷歌应用引擎应用程序,我想限制自己访问我的网站http://myapplication.appspot.com,但同时让我的安卓手机应用程序用户访问它。 我的 android 手机应用程序使用来自 google app 发明者的自定义 TinyWebdB 组件到我的 appspot 数据库的 GetValue 和 StoreValue 命令。

我的 appspot.com 页面是用 Python 编写的(文件 main.py)。

我应该在 app.yaml 和 main.py 文件中添加什么指令?

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    在您的移动应用程序中,您应该在发送的标头或用户代理字符串中添加一些独特的内容。然后在您的 python 代码中,您是否可以检查该值的存在以确定访问者是被允许还是被禁止(返回状态代码 403)。

    要允许自己查看应用程序,您应该检查当前用户是否是管理员用户。

    排序代码示例:

    from google.appengine.api import users
    
    allowed = False
    
    if unique_value_in_request():
        allowed = True
    
    user = users.get_current_user()
    if user and users.is_current_user_admin():
        allowed = True
    
    if not allowed:
        # return 403 status
    
    # do normal stuff
    

    【讨论】:

    • 请注意,虽然这是最好的方法,但它仍然很容易被规避:攻击者可以简单地从应用程序中提取相关详细信息或请求跟踪并“假装”为应用程序。此外,您不应该像 sn-p 所暗示的那样在模块级别编写此代码;它应该在处理程序中,或由处理程序调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多