我应该在生产环境中禁用BroswableAPIRenderer吗?

时间:2020-06-22 21:36:22

标签: python django amazon-web-services django-rest-framework amazon-elastic-beanstalk

伙计们,我正在django项目上部署AWS上的Elastic-Beanstalk,目前它运行良好,但是我想知道允许BrowsableAPIRenderer处理浏览器上的请求是好是坏,我试图找到与其相关的任何内容,但实际上根本没有太多的文档。我的应用程序具有非常严格的权限策略,即使我通过可浏览的API访问时,它也会返回以下内容:

{
    "detail": "Authentication credentials were not provided."
}

但是,它显示有关端点的某种“信息”。在该部分中,我很难定义是否应该允许它,以便其他开发人员可以轻松地了解正在发生的事情,或者另一方面,如果这是公众可以访问的巨大风险。

2

1 个答案:

答案 0 :(得分:4)

您可能会发现this question及其答案很有用。基于this answer,提供BrowsableAPIRenderer确实有助于开发:

  1. 它提供了简单的UI界面来与模型对象进行交互。
  2. 它可以提供详细的调试信息。
  3. URL列表可以显示在某些API根目录中

根据您当前的设置,用户至少需要在DRF登录页面或Django ADMIN页面上登录才能查看您的API并与之交互。

您可以在开发中启用BrowsableAPI,但在生产设置following this answer中将其禁用。

在生产中,我不希望其他具有写权限的用户通过BrowsableAPI与API进行交互。它将迫使其他用户使用前端应用程序或其他安全应用程序与API进行交互。这样可以提供一个安全层,以禁止使用BrowsableAPI完成描述性操作。