首页 > 解决方案 > 通过 jinja 模板将 python 列表传递给 javascript 的安全性

问题描述

就像这里提出的问题一样,我的 Flask 应用程序路线之一中有一个列表:

my_list = ['a', 'b', 'c']

列表中元素的数量取决于用户输入,但元素本身是来自程序中其他地方的字符串,用户无法控制。我想知道<script></script>在我的模板的标签中使用这个列表是否安全。我使用tojson过滤器将 python 列表用作 javascript 数组。这在我的开发服务器上工作得很好,但我的代码编辑器指出了 6 个问题。

    $(document).ready(function() {
        var my_array = {{ my_list|tojson }};
        for (let index = 0; index < my_array.length; index++) {
            console.log(my_array[index]);
        }
    });
Property assignment expected. [line 2] 
',' expected. [line 2]
',' expected. [line 2]
')' expected. [line 2]
Declaration or statement expected. [line 6]
Declaration or statement expected. [line 6]

这只是我的 linter 的错误标记,还是我需要另一种方法来在我的 javascript 中使用 python 列表?想知道在我部署应用程序时这是否会导致任何安全问题。

标签: javascriptflaskjinja2xss

解决方案


推荐阅读