【问题标题】:How to properly secure post requests with Django RF apis?如何使用 Django RF api 正确保护发布请求?
【发布时间】:2021-01-11 17:47:25
【问题描述】:

我目前正在学习为我正在做的事情制作 DRF API。我想知道我将如何保护通过客户端发送的 API POST 请求?

例如,假设我有一个登录表单,用户可以在其中输入他们的信息,此信息需要发送到(或发布到)我的 API 以进行验证。我不希望任何人向服务器发送请求,因此,我想使用 API 密钥,但由于这是在网站上完成的,任何人都可以根据需要查看 API 密钥,然后通过发送来利用服务器大量的请求。

我目前的想法是在 DRF 中使用序列化来检查 API POST 请求是否具有所需的一切,但我相当确定这可以通过检查我的代码发送到服务器的 JSON 类型很容易找到,那么究竟该怎么做我着手保护这一点,以便我可以将信息发送到裸域(如http://127.0.0.1:8000),然后拥有可以接受该信息的代码?

如有任何混淆,我深表歉意。如果您需要任何说明,请告诉我。

【问题讨论】:

    标签: api security django-rest-framework


    【解决方案1】:

    如果您正在创建 API,任何人都可以向服务器发送请求。网站和网页也是如此。他们是你无法避免的。但它们是处理可能滥用的方法。

    就像使用验证码登录表单一样,可以由网络上的一个人填写。尽管任何人都可以发送错误的验证码文本,但您必须在服务器上检查其正确性。或使用类似 google reCAPTCHA 的服务来外包此任务。

    API 密钥应该在登录之后而不是在登录之前给出。如果它是在成功登录后给出的,那么密钥是由合法用户获得的,这显然可以做他在网站上被允许做的任何事情。他们应该不是问题。

    对该问题的进一步解释将导致denial-of-service 的详细信息,即 DOS 攻击。如果您的应用程序需要处理 DOS 攻击,您应该咨询该领域的专家。

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 2013-08-08
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 2020-09-17
      • 1970-01-01
      相关资源
      最近更新 更多