【问题标题】:Django template tags security issueDjango模板标签安全问题
【发布时间】:2016-02-02 10:08:25
【问题描述】:

我有一个基于 MySQL 数据库数据生成报告的应用程序。由于客户也想使用这个报告应用程序并且不想使用我们蹩脚的报告样式而是他们自己的样式,我想实现一个功能,让他们使用 HTML、CSS 和 Javascript 上传自己的样式。由于他们显然需要报告中的动态内容,因此必须使用 Django 模板标签。让客户使用每个 Django 模板标签是否存在任何安全问题,或者我应该为允许用户使用的特定 django 模板标签实现某种“降价语法”?

【问题讨论】:

    标签: django security


    【解决方案1】:

    他们根本不需要使用 django 模板标签,你需要为他们提供一个 html 模板,他们可以用自己的 css 样式覆盖。

    然后,您将他们的首选项存储在 FileField 或大 charfield 中,然后在模板中引用它们以在需要的地方加载他们的样式。

     <link rel="stylesheet" href="{{ user.styling.stylesheet }}" type="text/css" />
      <style>{{ user.styling.css }}</style>
    

    【讨论】:

    • @IbrahimApachi - 请注意,如果他们以 &lt;/style&gt;&lt;script&gt;evil code&lt;/script&gt;&lt;style&gt; 开始他们的领域,那么第二个可能会有自己的安全问题,但如果客户愚蠢到自己毒害自己的错误跨度>
    • 但是在样式标签中不会执行Javascript代码,对吗?
    • @IbrahimApachi - 这就是我的意思,他们已经关闭了样式标签,打开了一个脚本标签,然后打开了一个新标签来完成它,结果是两个空的样式标签和一个脚本。但是看起来你还是希望他们介绍自己的 js :)
    • 但是如果我希望它们不包含 javascript 代码,我应该检查关闭或打开脚本或/和样式标签,如果我没记错的话
    • @IbrahimApachi - 是的,这将是一个开始,至少是结束标签。或者选择让他们上传文件
    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 2021-10-09
    • 2016-11-04
    • 2011-10-22
    • 2011-07-22
    • 1970-01-01
    • 2011-09-29
    • 2011-05-02
    相关资源
    最近更新 更多