如何使用 Django 实现手动安全程序



我正在用Django框架编写一个Web应用程序。这个Web应用程序是基于API的,我正在使用Django rest_framework。我有一个安全问题:在第一页上,用户必须解决验证码。解决 Recaptcha 后,我的网站会向用户提供会话 ID,在此之后,用户必须在他/她的所有 API 调用的正文中发布此会话 ID,并且每个 API 只能使用特定的会话 ID 调用一次。换句话说,我有一个状态机用于用户调用的 API,在每个状态下,用户可以调用具有该状态相应传出边缘的 API。

上述所有过程的目的是防止用户抓取我的网站。(用户不能使用会话 ID 多次调用 API,他/她应该充当普通用户,最多调用每个 API 两到三次(

现在我的问题是我应该如何在我的 Django 应用程序中处理这个问题?在此之前,我只是使用普通的 Django 会话中间件来处理会话。现在我应该完全以手动方式处理身份验证过程并传递和获取会话 ID,还是有没有一种方法可以使用该中间件来处理我的过程。

只需保存用户的状态即可执行此操作,并在每一步中更新用户的状态并考虑用户可以看到的下一个状态。

使用APIViews的自定义权限类来阻止此类请求。 在此处阅读更多内容 https://www.django-rest-framework.org/api-guide/permissions/#custom-permissions

最新更新