我发现Django处理XSS攻击非常强大,我只是在模板上写了一个简单的文本字段,xss_form.html:
<html>
<head><title>XSS Forms</title></head>
<body>
<form action="" method="get">
<input type="text" name="q">
<input type="submit" value="Submit">
</form>
{% if query %}
Query: {{query}} <br/>
{% endif %}
</body>
</html>
在view.py中:
def xss1(request):
if 'q' in request.GET:
q = request.GET['q']
return render(request, 'xss_form.html', {'query': q})
return render(request, 'xss_form.html')
那么每个人都知道在文本框中输入一些脚本,可以让浏览器弹出一个警告框吗?
谢谢!
答案 0 :(得分:0)
如果您仍有问题,请查看:https://docs.djangoproject.com/en/dev/topics/templates/#automatic-html-escaping
Django应该自动转义html代码,除非你告诉不要这样做。
答案 1 :(得分:0)
您可以使用以下GET请求:
Something <script>alert("This is not secure")</script>
您只需要修改xss_form.html:
查询:{{query}} ----&gt;查询:{{query | safe}}
应该看起来
<html>
<head><title>XSS Forms</title></head>
<body>
<form action="" method="get">
<input type="text" name="q">
<input type="submit" value="Submit">
</form>
{% if query %}
Query: {{query|safe}} <br/>
{% endif %}
</body>
</html>