如何限制访问我的application.appspot.com——Google App Engine?

4
对于一个谷歌应用引擎应用程序,我想要限制访问权限只给自己的网站http://myapplication.appspot.com,但同时也允许我的安卓手机应用用户访问。
我的安卓手机应用使用来自谷歌应用发明家的自定义TinyWebdB组件的GetValue和StoreValue命令将数据存储到我的appspot数据库中。
我的appspot.com页面是用Python编写的(文件main.py)。
我应该在app.yaml和main.py文件中添加哪些指令?
1个回答

2

在您的移动应用程序中,您应该将某些独特的内容放入发送的标头或用户代理字符串中。然后,在您的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

请注意,尽管这是最佳方法,但仍然很容易被规避:攻击者可以简单地从应用程序或请求跟踪中提取相关详细信息并“假装”成应用程序。此外,您不应该在模块级别编写此代码,正如片段所示;它应该在处理程序中或由处理程序调用。 - Nick Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接