django - 如何阻止来自 postman 、失眠等应用程序的请求并仅允许一个来源 - django Rest Framework

标签 django rest django-rest-framework

我尝试阻止通过 postman 或 insomnia 向我的应用程序发送发布请求的可能性。我想将请求的来源限制为一个域 www.sample.com。我确实将此域添加到了 ALLOWED_HOSTS 和 CORS_ORIGIN_WHITELIST,仅此而已,但我仍然可以发送请求并将数据保存在我的 django 应用程序中。

如何将请求的来源限制为一个域并阻止所有其他域或返回“Unauth msg”?

堆栈:DJANGO REST 框架

我可以添加支票:

if not request.headers.__contains__("Origin") or request.headers["Origin"] not in HOSTS:

但我可以使用关键 Origin 和域作为 postman 应用程序中的值填充自由字段

最佳答案

您无法阻止 HTTP 客户端设置 header 。如果您的 API 在互联网上可用,则可以向您发送任何 header 。 CORS(跨源资源共享)规则仅适用于 Web 浏览器。

关于django - 如何阻止来自 postman 、失眠等应用程序的请求并仅允许一个来源 - django Rest Framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62266889/

相关文章:

python - 将参数传递给 Django 表单

python - 第一次测试后 Selenium 测试失败

django - 通过Anaconda部署到Heroku

php - Yii RESTful 认证

java - 不直接编写 Servlet 来创建 REST API 的原因

python - 集成 Django Rest Framework 和 Scrapy

django-taggit 在带有 UUID 的模型上作为 pk 在保存时抛出超出范围

java - 更改未生效 Rest Webservice

python - 在 Django Rest Framework 的 Swagger 中显示最大值、最小值和默认值

python - 通过 postman 使用 JWT 获取请求