python - Django CORS ORIGIN WHITELIST 和 ALLOWED_HOST 没有过滤任何东西
问题描述
我正在尝试在同一个VPS
. 我正在CORS
为 Django 设置,我仍然可以将我的 API 与邮递员一起使用,因为我不应该这样做,因为我只允许我的VPS IP and localhost
.
我首先尝试了
ALLOWED_HOSTS = ["\*"]
并且CORS_ORIGIN_ALLOW_ALL = True
一切都按原样进行,我可以在任何地方使用我的 API,但是现在当我替换"\*"
为我的allowed hosts
并设置 cors 原点时,False
它就像没有任何改变一样。我试图remove/set http
从两者allowed hosts
和白名单中,但它没有改变。
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = ["MYIP","127.0.0.1"]
ALLOWED_HOSTS = ["MYIP"]
我使用 python 3.6、django 2.2 和 react 16.8。感谢您的帮助
解决方案
您不能使用 Postman 或 curl(在任何其他直接 HTTP 请求方法上)来测试 CORS。CORS 旨在告诉Web 浏览器(并且仅限于 Web 浏览器)它们应该允许从网页中访问哪些资源。
这样做的目的是防止带有恶意站点.com 的人诱使用户访问该站点以从您的服务器(例如 iframe)获取资源,以便用户认为他们在您的站点上,而实际上并非如此。
因此,您只能通过运行一个脚本来测试它,该脚本从不同域(从浏览器中)的网页中的 API 获取数据。
CORS 并不是为了让您的网站完全阻止访问。任何使用 curl(或邮递员)的机器仍然可以访问您的 API。
推荐阅读
- android - Android生物识别身份验证返回“唯一ID”并用它加密
- java - 如何加载 yaml 属性,即使用杰克逊数据格式的地图列表?
- javascript - 如何将样式组件及其子组件传递给另一个函数,以便我可以创建酶安装包装器辅助函数
- php - 通过 API v3 上传到 YouTube 时“正在处理视频”
- python - 如何使用 lambda 函数 (A) 的 n 个结果在 Python 中调用另一个 lambda 处理器函数 (B) 的 n 个并发实例?
- go - 如何确保所有 goroutines 没有 time.Sleep 终止?
- excel - 如何清除 Excel 中(仅)隐藏单元格的内容(而不是删除它们)?
- cluster-analysis - 有没有办法通过相似性对多组字符串进行聚类?
- python - 确保两个数字的正差
- android - 可变参数方法的非可变参数调用