从家庭网络上的 grunt Web 服务器限制 http:// 连接到远程托管 Web 服务器的正确 CORS 条目是啥?

     2023-03-04     225

关键词:

【中文标题】从家庭网络上的 grunt Web 服务器限制 http:// 连接到远程托管 Web 服务器的正确 CORS 条目是啥?【英文标题】:What is the correct CORS entry for limiting an http:// connection to a remote, hosted web server from a grunt web server on a home network?从家庭网络上的 grunt Web 服务器限制 http:// 连接到远程托管 Web 服务器的正确 CORS 条目是什么? 【发布时间】:2015-10-17 02:30:27 【问题描述】:

我已经设置了一个通过 REST API 响应的远程托管 javascript 服务器 (DreamFactory Server http://www.dreamfactory.com/)。

在本地,我通过 grunt web 服务器通过 $grunt serve 运行 Angularjs 应用程序 https://www.npmjs.com/package/grunt-serve

我在远程服务器上设置了 CORS,以允许多个 http:// 连接类型使用“*”。这工作正常。

我的问题是如何将 CORS 配置限制为仅允许来自我家的 grunt Web 服务器的连接?

我尝试为“localhost”、“127.0.0.1”创建一个条目,这也是我从 whatismyip.com 报告的家庭 Internet IP,这是我的提供商在我 ping 它时为我的家庭 IP 列出的 dns 条目,我为我的家庭互联网 IP 创建的 dyndns 条目...它们都不起作用,除了 '*'(它允许任何站点连接)。

我认为了解 CORS 条目应该是什么样子以仅允许来自我的家庭网络服务器的连接对我来说是一个教育问题。

这可能吗?如果是这样,我应该检查什么以及在哪里检查才能在 CORS 配置中找到要清除的正确条目?

-布赖恩

【问题讨论】:

开始阅读文档的好地方developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 您可以在请求中加入某种Auth 标头,并且仅在该auth 标头存在时才提供cors 标头 感谢您的链接。我真的不需要添加任何 Auth 标头,DreamFactory 环境可以本地执行此操作(并且我正在使用它们)。我认为这可能与请求传输的原始值有关。从上面的链接:“请注意,现在除了foo.example(由请求中的ORIGIN:标头标识)之外的任何域都不能以跨站点方式访问资源。Access-Control-Allow-Origin标头应包含在请求的 Origin 标头中发送的值。" 【参考方案1】:

要工作并实际应用限制,请求连接的客户端必须支持并强制执行 CORS。以一种奇怪的方式(从安全的角度来看),使用 CORS 限制访问需要一个自我监管的客户端(遵循规定的访问规则的客户端)。这适用于现代浏览器,因为它们都遵循规则,因此它通常适用于通过浏览器提供服务的应用程序。

但是,CORS 访问限制不会阻止其他类型的客户端(例如任何语言的任何随机脚本)访问您的 API。

换句话说,CORS 实际上是关于由本地浏览器强制执行的网页访问规则。听起来您的 grunt/angular 代码不一定是实现和强制执行 CORS 的东西。


如果您确实想阻止其他系统访问您的 DreamFactory Server,那么您需要在 API 服务器本身中实现一些服务器端访问限制。

如果您只有一个客户端访问它并且该客户端正在使用不公开的“受保护”代码,那么您可以只实施密码或某种登录凭据,而您的一个客户端将是唯一拥有登录凭据。

如果访问始终来自一个特定的固定 IP 地址,您可以拒绝来自不在您维护的配置文件中的任何 IP 地址在您的服务器上的连接。

【讨论】:

谢谢。我认为您可能是正确的,因为 grunt/angular 开发网络服务器是问题所在。奇怪的是,通过清除 DreamFactory 服务器上的“*”条目,我可以在没有任何 CORS 问题的情况下进行连接。但是,如果我尝试指定域,那么它将不起作用。我认为这可能只是找到要列出的正确域或 IP 地址的问题。但是,它可能无法在具有正确配置的非生产服务器上工作?【参考方案2】:

您无法使用 CORS 保护 API,因为您需要在服务器上实施身份验证方案。基本上有 4 个步骤可以做到这一点。

    使用一些额外的访问控制语句更新您的服务器发送的标头。 告诉 Angular 允许跨域请求。 在来自 Angular 的 API 调用中传递凭据。 在您的 Web 服务器或 API 代码中实施 HTTP 身份验证方案。

Georgi Naumov 的这篇文章是查找 Angular 和 PHP 实现细节的好地方。 AngularJS $http, CORS and http authentication

【讨论】:

这是一个很好的观点。不过,我并没有尝试使用 CORS 对其进行身份验证……只是为了允许远程 Web 服务器(在这种情况下为我的本地 grunt 服务器)连接到它。一旦可以连接,我就可以运行 DreamFactory 中内置的身份验证方案。如果我在远程 DreamFactory 服务器的 CORS 配置上清除 *,这一切都有效。如果我尝试清除除“*”之外的任何其他内容,则它不起作用。我认为可能有一个特定的条目可以为我的 grunt 服务器从家里访问清除它?

如何从本地网络访问运行在 WSL(Linux 的 Windows 子系统)上的 Web 服务器

...何从本地网络访问运行在WSL(Linux的Windows子系统)上的Web服务器【英文标题】:HowtoaccesstothewebserverwhichrunningonWSL(WindowsSubsystemforLinux)fromlocalnetwork【发布时间】:2018-09-2421:49:19【问题描述】:在将Ubuntu安装为WSL(Linux的Windows子系统... 查看详情

从 Android 访问可通过 Web 上的 *** 访问的 Web 服务

...应用程序,我知道如何使用Web服务我遇到了挑战并且缺乏网络方面的知识,Web服务可通过受保护的Web上的***访问凭据。我正在四处寻找连接***服务here并尝试了 查看详情

从 Web 服务 (asmx) 页面引用 asp.net 页面上的字段

...页面使文本框成为“自动完成”控件。为此,我正在使用网络服务。我在网络服务中的代码如下所示:publicstring[]ISGetCompletionList(strin 查看详情

如何实现流媒体引擎,以便家庭网络上的树莓派视频流可以公开

...间】:2018-07-0114:52:54【问题描述】:我已经使用HTTP线程服务器和开放式CV在树莓派上实现了运动检测+网络摄像头视频流。现在我想在我的pi在家庭网络上时公开访问它 查看详情

从 Web 服务器上的文本文件中读取文本 [重复]

】从Web服务器上的文本文件中读取文本[重复]【英文标题】:Readingthetextfromatextfileonawebserver[duplicate]【发布时间】:2018-11-2719:50:42【问题描述】:我曾经能够将位于我们公共Web服务器上的文本文件读取到字符串变量中。Web服务器... 查看详情

从 iOS 上的 .net Web 服务获取数据

...发布时间】:2013-01-2302:22:02【问题描述】:我有一个.Net网络服务,我将它用于移动应用程序。我在windowsphone和android应用程序上使用了它,但我还没有在iOS上从中获取数据。例如,我的Web服务中有一种方法,它需要一个参数。如... 查看详情

windows10家庭版也能共享打印机(中)解除guest账户网络登录限制,实现局域网共享

...制。首先想到的是用组策略编辑器gpedit.msc。但是Windows10家庭版没有组策略编辑器,我们先尝试用U盘把Windows10专业版的组策略编辑器文件复制过来运行,结果在Windows10家庭版上用不了。只好通过修改注册表来解除了限制。1.Win+R,运行... 查看详情

Axis2如何限制一个Web服务

...ice【发布时间】:2013-01-2013:15:28【问题描述】:我有两个网络服务。我用于移动应用程序的一种,用于从数据库中选择/更新数据。我被要求为第三方编写另一个Web服务,以从我们的数据库中收集公共数据。我不希望我的第一个... 查看详情

从 iPhone 上的 Web 服务器请求数据会造成过多的延迟

】从iPhone上的Web服务器请求数据会造成过多的延迟【英文标题】:RequestingdatafromWebServeroniPhonecreatestoomuchofadelay【发布时间】:2011-01-1210:14:13【问题描述】:在我的iPhone应用程序中,我需要访问网络服务器才能登录我的系统。客户... 查看详情

限制从 Azure 函数子网访问存储帐户

...-0123:53:11【问题描述】:我有一个托管在(S1)应用服务计划上的azure函数。Azure函数已集成到VNet子网。此子网启用了Microsoft.Storage和Microsoft.Web服务端点,并且它被委派给Microsoft.Web/s 查看详情

运行 grunt 和 tomcat 服务器的 Web 应用程序(Spring、Angular、Grunt、Maven、Tomcat)

】运行grunt和tomcat服务器的Web应用程序(Spring、Angular、Grunt、Maven、Tomcat)【英文标题】:WebApp(Spring,Angular,Grunt,Maven,Tomcat)runningbothgruntandtomcatservers【发布时间】:2014-09-2501:09:18【问题描述】:好的,所以我一直在阅读其他几个堆... 查看详情

无法从连接到 Azure *** 的本地计算机(在家庭网络上)访问专用 AKS 群集

】无法从连接到Azure***的本地计算机(在家庭网络上)访问专用AKS群集【英文标题】:CannotaccessPrivateAKSclusterfromLocalMachine(onhomenetwork)connectedtoAzure***【发布时间】:2021-07-2401:09:38【问题描述】:我在Azure上的VNET中部署了一个私有AKS... 查看详情

用于从 Web 服务器上的特定目录下载任何类型文件的 Aspx 页面

】用于从Web服务器上的特定目录下载任何类型文件的Aspx页面【英文标题】:Aspxpagetodownloadanytypeoffilefromaspecificdirectoryonwebserver【发布时间】:2012-04-1305:10:37【问题描述】:我的客户有一个快速要求,他想将一些文件存储在网络服... 查看详情

将 JSON 文件导入运行在 Grunt 服务器上的 Angular 应用程序

】将JSON文件导入运行在Grunt服务器上的Angular应用程序【英文标题】:ImportingJSONfileintoAngularapplicationrunningonGruntserver【发布时间】:2013-10-1704:40:50【问题描述】:我正在学习基本的Angular教程,需要在其中包含一个JSON文件。我用Yeom... 查看详情

应用之间的 Azure Web 应用访问限制

...有传出IP地址设置访问限制规则(我注意到这些与API应用上的传出 查看详情

301 从 IIS 6 上的 web.config 重定向

...发布时间】:2013-02-0619:28:58【问题描述】:我需要从IIS6服务器(Windows2003Web服务器)上的web.config进行301重定向。我是Apache服务器的人,对WindowsWeb服务器一无所知。我只能通过FTP访问服务器。我在另一个问题中找到了以下内容,... 查看详情

从 android 上的端点更改的 Web 服务

...友用python编写的Web服务的端点获取。但是我从来没有写过服务器端的东西。我有phpmyadmin在虚拟服务器上运行...但是尚未使用它。我只需要人们能够喜欢或不 查看详情

如何使用 svcutil 从使用限制隐藏元素的 Web 服务生成 C# WCF 代理?

】如何使用svcutil从使用限制隐藏元素的Web服务生成C#WCF代理?【英文标题】:HowtousesvcutiltogenerateaC#WCFproxyfromawebservicethatusesrestrictiontohideelements?【发布时间】:2011-12-1306:09:24【问题描述】:我正在为一个或多或少不受我控制的Web... 查看详情