用于标记一个视图函数或类,以指示 Django 框架在处理该视图时应该跳过跨站请求伪造(CSRF)保护。CSRF 是一种网络攻击方式,攻击者诱导用户在已认证的网站上执行非预期的操作。Django 默认启用了 CSRF 保护,以防止这种攻击。

如果希望某个视图不受 CSRF 保护。如果你的视图是一个 API 端点,并且你通过其他方式(如 API 密钥、OAuth 等)来验证请求,那么你可能不需要 CSRF 保护。在这些情况下,你可以使用 @csrf_exempt 装饰器。

使用方法

要在 Django 视图函数上使用 @csrf_exempt,你需要先从 django.views.decorators.csrf 模块中导入它,然后将其应用于你的视图函数

from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def my_view(request):
    return HttpResponse('Hello, world!')

注意事项

1、使用 @csrf_exempt 可能会使你的应用面临 CSRF 攻击的风险,因此只有在确信没有其他方式可以保护该视图时才应使用它。

2、如果你正在开发一个 API,并且希望通过其他方式验证请求(如使用令牌),那么你可能不需要 CSRF 保护。但是,请确保你采取了其他适当的安全措施来保护你的 API。

3、在 Django 的较新版本中,对于 API 视图,通常推荐使用 Django REST framework 或其他类似的库,这些库提供了更强大和灵活的方式来处理认证和授权。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部