是否可以确保对我的Appengine应用程序的特定网址(无论是否为AJAX)的GET / POST请求只能在应用程序内部而不是从外部进行(即)来自其他域的所有请求都必须被拒绝
可能的?
答案 0 :(得分:5)
请求不是来自应用中的或来自其他域。它们来自计算机,通过浏览器,爬虫,脚本或任何程序。这意味着您的问题并非针对谷歌应用引擎,而是针对网络编程。一个脆弱的方法是依赖HTTP_REFERRER,但我不建议这样做。您应该确保您的用户登录,并且只向您知道的用户显示关键信息。
答案 1 :(得分:5)
除了@klausbyskov所说的,你应该看看针对Cross-Site Request Forgery(CSRF)的各种保护机制。
答案 2 :(得分:1)
从您的应用程序(通过队列等)发出的请求是自动管理的,因此您可以要求管理员提出请求。只需将以下内容添加到您的app.yaml:
- url: /whatever_url_you_want_protected
script: your_app.py
login: admin
最好将以下跳过文件添加到app.yaml的底部:
skip_files: |
^(.*/)?(
(app\.yaml)|
(app\.yml)|
(index\.yaml)|
(index\.yml)|
(#.*#)|
(.*~)|
(.*\.py[co])|
(.*/RCS/.*)|
(\..*)|
(tests/.*)
)$
这适用于get / post,ajax,任何类型的请求。