首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppEngine:防止外部请求

AppEngine:防止外部请求
EN

Stack Overflow用户
提问于 2016-08-15 16:15:14
回答 3查看 61关注 0票数 0

是否有一种优雅的方法来防止来自应用程序外部的引用者的请求?从app.yaml文档来看,这似乎并不是一个收件箱功能,但似乎它是如此的可取/普遍,以至于它必须隐藏在某个地方,而不必为每个应用程序手动重新实现它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-16 00:03:21

不是的。在GAE中没有这方面的内置逻辑。任何支持都必须在特定于应用程序的请求路由级别上存在。

票数 0
EN

Stack Overflow用户

发布于 2016-08-15 16:52:05

它是内置的。

在app.yaml中,您可以为一个处理程序指定login: admin,它只接受来自admin或AppEngine的请求(例如cron、任务队列,以及应用程序本身的恰当的urlfetch --最后一个不能100%确定)。

见docs:element

此外,您还可以检查HTTP_HEADERS,如引用,IP,用户代理。

此外,您还可以发出一个令牌,并在每个请求中传递/检查它。

票数 0
EN

Stack Overflow用户

发布于 2016-08-15 23:02:10

这里可能有几个问题被混淆了。

CORS -一种浏览器强制的安全措施,以防止网页恶意或以其他方式将数据发送到非原始服务器。服务器不能强制执行此操作,只能允许。允许这是应用程序级别的问题(即不内置到GAE中)

XSRF -服务器强制执行安全措施,以阻止通过身份验证的用户被恶意客户端代码滥用其帐户。这是应用程序级别的关注点(即不内置到GAE中)

身份验证--通过某些权限集标识用户或客户端。GAE (云端点,提供身份服务,需要管理登录)对此有一定的支持,但这通常也是应用程序级别的问题。在授权客户端(相对于用户)的情况下,没有内置的支持。

授权-基于角色/权限的不同访问集。不是内置的。

其他解决办法:

使用主机或源头

API令牌-可以通过https对服务器进行服务器访问,但在发布的客户端(如网页)上使用时会受到轻微的破坏。

您最好的选择是利用您的框架并拥有用户帐户。

如果您不想这样做,在一般情况下,类似XSRF (标头和cookie中的令牌)就足以确保web客户端响应您的“应用程序”。但是,只有当客户端是web浏览器时才能工作,这与原始/主机相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38958826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档