0

我发现 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')

那么大家知道在文本框输入一些脚本,可以让浏览器弹出一个警告框吗?

谢谢!

4

2 回答 2

0

如果您仍然有问题,请查看:https
://docs.djangoproject.com/en/dev/topics/templates/#automatic-html-escaping Django 应该自动转义 html 代码,除非您告诉不要这样做。

于 2014-07-28T04:23:44.497 回答
-1

您可以使用以下 GET 请求:

Something <script>alert("This is not secure")</script>

你只需要修改 xss_form.html 从:
Query: {{query}} ----> Query: {{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>
于 2017-03-25T15:15:47.637 回答