Django CORS源白名单,允许主机不过滤任何内容

2024-05-17 00:57:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在同一个VPS上部署Django应用程序(创建restapi)和React应用程序(使用我的api)。 我正在为Django设置CORS,而且我仍然可以在postman中使用我的API,因为我只允许使用VPS IP and localhost。在

我已经试过了 ALLOWED_HOSTS = ["\*"]和{} 一切顺利,我可以在任何地方使用我的API 但现在当我用我的allowed hosts替换"\*",并设置cors origin allow all at False时,就好像什么都没改变。 我试图从allowed hosts和白名单中remove/set http,但没有改变任何东西。在

CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = ["MYIP","127.0.0.1"]
ALLOWED_HOSTS = ["MYIP"]

我使用python3.6、django 2.2和react 16.8。 谢谢你的帮助


Tags: djangoapirestapifalse应用程序vps部署origin
1条回答
网友
1楼 · 发布于 2024-05-17 00:57:56

不能使用Postman或curl(在任何其他直接HTTP请求方法上)来测试cor。CORS旨在告诉web浏览器(并且仅限web浏览器)允许从web页面访问哪些资源。在

这个想法是为了防止有人恶意-site.com网站这会诱使用户访问该站点以从您的服务器(例如iframe)获取资源,这样用户就可以认为他们在您的站点上,而实际上并不在您的站点上

因此,您只能通过运行一个脚本来测试它,该脚本从另一个域(从浏览器中)的网页中的API中获取数据。在

CORS并不是为了让你的网站完全阻止访问。任何使用curl(或postman)的机器仍然可以访问您的API。在

相关问题 更多 >