我有一个视图打算只处理以开头的 POST 请求
user = User.objects.get(username=request.POST['name'])
我是否需要确保视图不是通过 GET 请求调用的?不确定我是在考虑良好的实践/安全类型的事情还是强迫症。
我正在使用@require_POST
装饰器,因为使用 GET 调用视图会导致"Key 'name' not found in <QueryDict: {}>
500 错误。
我想发生这种情况的唯一机会是,如果用户查看了页面的 HTML,并且出于某种原因考虑尝试action
在地址栏中尝试表单的属性——这似乎不太可能。
我自己在几个网站上尝试过这个并得到一个错误页面,而不是一个带有 405 错误的空白页面@require_POST
给我。
如果模板设计者错误地创建了指向我的视图的超链接或忘记了,那么防范 GET 请求可能是一种好习惯method="post"
?(在这种情况下,我想我应该get_object_or_404
在上面使用)
我假设添加@require_GET
到仅用于处理 GET 请求的视图是不必要的?