背后的目的lxml.htm.清洁从标记中删除“样式”

2024-09-29 23:16:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用lxml.html.clean清理html。它似乎从所有的标记中删除了“样式”属性,并且出于我的目的,我需要不删除样式属性。在

在我开始允许之前,我很想知道在清理html时不删除样式属性是否有安全隐患。在

任何关于这件事的见解都将受到高度赞赏。在

(请注意,我的应用程序允许最终用户创建html,该html保存在后端数据库中,然后呈现在页面上上面的“清除”可以很好地从html中删除任何恶意的html(如javascript等),然后再保存以供后续呈现)。在

Perfeedparser HTML sanitisation web site-“style”不在“safe属性”列表中

(另外,如果这是一个过激的问题,那很抱歉。我不熟悉html/卫生处理和相关的安全方面)


Tags: 标记目的clean数据库应用程序高度属性html
1条回答
网友
1楼 · 发布于 2024-09-29 23:16:11

在正常情况下,样式本身不存在安全风险。但是,在以下几种情况下,恶意风格可能是一种责任:

  • ^带有style="display:none"的{}和input元素可以在某些浏览器中自动填充数据,导致用户在不知情的情况下提交额外的数据。在
  • style="display:block"或其他display样式可能会破坏预期为inline或其他样式的布局。在
  • 如果布局引擎想要维护特定的视觉样式,那么允许style属性中的样式信息将为作者/海报提供比缩进更多的选择样式的自由度。(如果他们决定要2000pt字体呢?)在
  • 样式属性有时可以通过@import机制加载其他样式,或者通过background和类似属性加载url。除非sanitizer提交同时清理CSS代码,否则这将是一个潜在的注入向量。在

由于您希望进行sanatize的唯一原因是源代码可能不受信任或不安全,因此假定不希望让源代码设置自己的样式。在

相关问题 更多 >

    热门问题