我正在使用lxml.html.clean来清理html。它似乎删除了' style'来自所有标签的属性,为了我的目的,我需要不删除样式属性。
在我开始允许之前,我很想知道在清理html时是否有任何安全隐患都没有删除样式属性。
对这一问题的任何见解都会受到高度赞赏。
(请注意我的应用程序允许最终用户创建html,保存在后端数据库中然后在页面上呈现。' clean'以上可以很好地删除任何恶意html(例如javascript等)在保存以供后续渲染之前从html中保存。)
Per feedparser HTML sanitisation web site - ' style'没有列在' safe_attrs'
列表中(另外,对不起,如果这是一个行人问题。我是html / sanitization和相关安全方面的新手)
答案 0 :(得分:1)
在正常情况下,样式本身并不存在安全风险。但是,在某些情况下,恶意风格可能是一种责任:
form
的input
和style="display:none"
元素可以在某些浏览器中自动填充数据,从而导致用户无意中提交额外数据。style="display:block"
或其他display
样式可能会破坏期望inline
或其他样式的布局。style
属性中允许样式信息将为作者/海报提供比选择样式的缩进更多的宽容度。 (如果他们决定要2000pt字体怎么办?)@import
机制加载其他样式,或者导致通过background
和类似属性加载网址。除非清洁剂承诺也对CSS代码进行清理,否则这将成为注射的潜在载体。由于您想要进行整理的唯一原因是来源可能不受信任或不安全,因此不建议让源设置自己的样式。