我想在HTML中的上下文逃避XSS,到目前为止,我对待<,>和"字符.显然也建议逃避&符号,但为什么呢?(除了保持HTML有效之外,我们假设这不是问题)
所以,我问的是:当我逃离<,>并且",有人可以证明符号怎么还允许在HTML上下文中的XSS攻击?
干杯!
假设我在烧瓶应用程序的 html 模板中有以下脚本
<script type="text/javascript">
console.log('{{ url_for('root', arg1='hello', arg2='world') }}')
<script>
Run Code Online (Sandbox Code Playgroud)
我有一个烧瓶端点 root()
@app.route('/', methods=['GET'])
def root():
print(print(request.args))
Run Code Online (Sandbox Code Playgroud)
当我调用我的页面时,内部脚本被呈现为
console.log('/api/art_structure?arg2=world&arg1=hello')
Run Code Online (Sandbox Code Playgroud)
当我调用这个 url 时,我的request.args字典是:
ImmutableMultiDict([('amp;arg1', 'hello'), ('arg2', 'world')])
Run Code Online (Sandbox Code Playgroud)
这是不正确的,因为 的键arg1是错误的。有什么线索可以防止 jinja2 转换&为&?