正确理解相同主机/不同端口和安全性的 CORS

2023-12-13

我不做太多客户端网络编程,所以我试图理解这个概念与我的具体情况的关系。

我有一个 RESTful WCF 服务在 50000 多个端口上运行。此外,我还有一堆用 HTML5/CSS3/JavaScript 编写的 Web 表单(不是 ASP WebForms),它们可以对此 WCF 服务进行 AJAX 调用。 Web 表单托管在同一主机上,但使用端口 80。Web 表单进行的 AJAX 调用都是GET仅请求。

此外,我有一个位于完全不同的位置(不同的主机)的第三方云托管应用程序,它也需要调用 WCF 服务。此通讯正在执行POSTs & PUT到 WCF 服务。

显然,从第三方托管云应用程序发出的调用是跨源的。根据我的研究,不同的港口实际上是不同的起源。

我知道安全性和 CORS 是不同的概念,但这就是我想要实现的目标,我需要更好地理解所有这些是如何工作的:
现在,我允许所有跨源请求,并且一切正常,但我想限制它以提高安全性,然后最终使用相同的证书通过 Webforms 和 WCF 服务设置具有传输安全性的 HTTPS。第三方云服务托管应用程序仍然需要能够与 WCF 服务通信,因此我需要允许它以不同的方式进行身份验证,这样就可以通过传递密钥来完成,因为一切都是服务器端的仅有的。

这整个通信“三角”对我来说感觉很模糊,我希望 SO 是我发布这个问题的正确位置,因为它与代码不直接相关。

  1. 上述 WCF - Web 表单情况是否被视为跨源?
  2. A)如果上面不是跨源的,那么我只需要通过Access-Control-Allow-Origin: 'https://my-cloud-host'在我的 web.config 中?

    B)如果是的话,我明白只需要回显标头中允许的来源。我要设置什么(如果有的话)Access-Control-Allow-Origin在这种情况下,在 IIS 中?如果不允许,我该如何回显,只回显原始来源?
  3. 如果它们托管在不同的端口上,我使用相同证书进行相互 SSL 身份验证的想法是否可行?这是否会阻止云服务与 WCF 服务进行通信,或者是否有第二个端点允许这样做?
  4. 我失去理智了吗?我对这整件事感到很困惑。

  1. 是的。在除 IE 之外的所有主要浏览器中,不同的端口被视为另一个来源。
  2. A)是正确的。您只需允许端口 80 源发送请求。
  3. 对此我不确定。我倾向于认为 SSL 是端口感知的,并且您不能在不同端口上使用相同的证书。
  4. 你可以阅读这篇优秀的文章让你的头脑休息一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确理解相同主机/不同端口和安全性的 CORS 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • IIS 7.5 托管的 WCF 服务仅针对大型请求抛出 EndpointNotFoundException 和 404

    我有一个 WCF REST 服务托管在 IIS 7 5 Windows 2008 R2 上 该服务按预期工作 除非客户端尝试发送大于 25 MB 的消息 具体来说 当发送大小约为 25 MB 的消息时 服务会正确接收并处理消息 而当发送大小
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐