大多数人推荐的方法:
files_form_checked_chkbox = request.POST.getlist("file_of_chkbox")
for every_file in files_form_checked_chkbox:
#do somethig
这是我发现的方法:
keys = request.POST.keys()
for key in keys:
if key != "csrfmiddlewaretoken":
#do somethig
这是我的模板:
<p>List</p>
<form action="..." method="post">
{% csrf_token %}
{% for key in keys %}
<p>
<input type="checkbox" name="file_of_chkbox" value="{{key}}">
<a href="..." >{{key}}</a>
</p>
{% endfor %}
<input type="submit" value="Delete files" />
</form>
两种方法可以做同样的事情
我明白了。A肯定比B好,A被解释了很多次。 我使用请求
但我想知道为什么不推荐B和reson
我更喜欢B方法,这个方法实现了“同步器令牌模式”,以防止跨站点请求伪造漏洞
了解有关CSRF的更多信息:
http://en.wikipedia.org/wiki/Cross-site_request_forgery
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet
B和A做的事情不一样
在
request.POST.keys()
上循环时,通过获取甚至不需要的POST参数,您正在做大量额外的工作第一个选项就是做你需要做的事情——获取复选框值列表。它是可读的
相关问题 更多 >
编程相关推荐