在Django模板中考虑以下代码:
p4 client -i
或
<a href='{{target}}'>Link text</a>
如果上下文项<a href="{{target}}">Link text</a>
包含引号或双引号字符(target
或'
),那么我希望HTML页面至少能折断。或者有人可以在关闭引号/双引号后插入JavaScript,以便在客户端计算机上运行任意代码。
在这种情况下如何转义网址?
我尝试过
"
但是这种方法的问题在于,URL停止通向诸如<a href='{{target|urlencode}}'>Link text</a>
之类的原始站点,但开始通向http://www.example.com
作为域名后路径的http://www.example.com
引导我的站点,即http://127.0.0.1:8000/http%3A//www.example.com
。
那么您能告诉我使URL安全的正确方法吗?
更新:我刚刚意识到我的示例过于简化。如果更详细的话,这是我使用上下文项的方式:
<a href="javascript:{}"
onclick="return recordTarget({{ target.perm_id }}, '{{ target.link }}')">
{{ target.title }}</a>
所以我已经在HTML中使用单引号和双引号。 target.link
作为字符串传递给JavaScript函数。
在URL包含单引号或双引号的情况下,如何更改代码的安全性和有效性?