【发布时间】:2015-10-27 11:21:18
【问题描述】:
目前我正在使用 Angular、ExpressJS 和 Mongodb 构建应用程序。简短的问题:让角度到达(GET/POST/DELETE)'/api'(restful 支持 expressJS+Mongodb)。但是将 api 设为私有,因此只有 angular 客户端可以使用 api。
长问题: - Angular 客户端:http://localhost:3000, - 表达+宁静:http://localhost:3005/api, - 到 localhost 的 Apache 代理:domain.com -> localhost:3000
我的 Angular 客户端正在向后端 api 发出 GET/POST 请求。此 api 应仅可用于在端口 3000 上运行的客户端。REST 客户端请求应被快速服务器阻止。一切都在apache2后面工作。 Apache 仅反向代理客户端。客户端和服务器端是分开的。如何将服务器端设为私有,不能从外部访问?
到目前为止我尝试过:
- 白名单 CORS localhost:3000 并阻止所有其他,由于反向代理,将无法正常工作。导致被 CORS 阻止。
- Csrf 令牌 cookie,可以通过 headers 操作、获取值和设置。
- 使用登录不是一种选择,因为没有用户。
-也许我只需要朝着正确的方向前进,我对任何答案都很满意。
编辑:我发现我的 api 在代理后面不可访问。您无法调用 localhost:3005/api,因为 apache 将所有内容都代理到 localhost:3000。我是对的吗? 99%安全吗?
【问题讨论】:
-
很难确定您的实际问题是什么。任何地方都没有问号 (?) 的事实无济于事。
-
编辑:“我怎样才能使服务器端只私有,不能从外部访问?”
-
我认为除了创建会话令牌之外别无选择。
-
我阅读了很多关于会话令牌尚未准备好投入生产的帖子,因为它会泄漏内存。
标签: javascript angularjs rest express