您如何禁止同源访问但允许严格的跨域访问? [复制]

Posted

技术标签:

【中文标题】您如何禁止同源访问但允许严格的跨域访问? [复制]【英文标题】:How do you disallow same-origin access but allow strict cross-origin? [duplicate] 【发布时间】:2021-06-30 02:11:22 【问题描述】:

假设我有一个服务器 abc:8080 以及一个向 abc:8080 发出请求的网站 web.org..

我只希望 abc:8080 可以通过 web.org 访问。 不允许用户导航到 abc:8080 而不是在允许的来源“web.org”上。 这可能吗?

django-cors-headers 具体答案会很棒!

【问题讨论】:

【参考方案1】:

据我了解,您的 abc:8080 充当提供 API 的后端服务器,而 web.org 假设您的前端服务器使用这些 API。

我假设您在 abc:8080

上安装了 django-cors-headers

web.org 添加到 'abc:8080' 项目中的 django 设置变量 CORS_ALLOWED_ORIGINS 应该可以完成这项工作

CORS_ALLOWED_ORIGINS = [
    "web.org",
    
]

【讨论】:

是的,我有这些。那些只启用严格允许从 web.org 访问,但它仍然不能阻止 abc:8080 被自己访问.. 但是没有办法阻止同源。所以用户仍然可以导航到 abc:8080。 我相信答案是,CORS 无法提供这样的功能。所以我需要一些其他的解决方案。 首先为什么要阻止来自同源的访问?作为 CORS 的首字母缩写词,它本身就是关于跨源的,我坚信它不能对同源访问做任何事情。 只是为了更多的混淆......虚假的安全感

以上是关于您如何禁止同源访问但允许严格的跨域访问? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC的跨域访问

Spring MVC的跨域访问

CORS

AJAX跨域解决方法

Ajax的跨域问题

PHP解决mui中ajax的跨域问题