提问人:msangel 提问时间:10/13/2013 最后编辑:msangel 更新时间:3/22/2019 访问量:2049
Antisamy 解析器强制关闭标签
antisamy parser force closing tag
问:
我使用 Antisamy 来验证 HTML。我的政策允许 iframe,例如 youtube 视频。问题是 - 如果标签为空(如下所示):
<iframe src="//www.youtube.com/embed/uswzriFIf_k?feature=player_detailpage" allowfullscreen></iframe>
比清洁后会是这样的:
<iframe src="//www.youtube.com/embed/uswzriFIf_k?feature=player_detailpage" allowfullscreen/>
但它应该有正常的结束标签。
这打破了页面上的所有内容。 我已经将我的指令设置为使用大部分 HTML,而不是 XML:
<directives>
<directive name="omitXmlDeclaration" value="true"/>
<directive name="omitDoctypeDeclaration" value="true"/>
<directive name="maxInputSize" value="200000"/>
<directive name="nofollowAnchors" value="true" />
<directive name="validateParamAsEmbed" value="true" />
<directive name="useXHTML" value="false"/>
<directive name="embedStyleSheets" value="false"/>
<directive name="connectionTimeout" value="5000"/>
<directive name="maxStyleSheetImports" value="3"/>
<directive name="formatOutput" value="false"/>
</directives>
但这无济于事。
UPD:在解析器之间切换和使用指令仍然没有给出任何结果。
UPD2:这是我配置的一部分,负责处理标签:iframe
<tag name="iframe" action="validate">
<attribute name="src">
<regexp-list>
<regexp name="youtube"/>
<regexp name="slideshare"/>
</regexp-list>
</attribute>
<attribute name="allowfullscreen">
<regexp-list>
<regexp name="anything"/>
</regexp-list>
</attribute>
<attribute name="scrolling">
<regexp-list>
<regexp name="anything"/>
</regexp-list>
</attribute>
<attribute name="marginwidth">
<regexp-list>
<regexp name="anything"/>
</regexp-list>
</attribute>
<attribute name="marginheight">
<regexp-list>
<regexp name="anything"/>
</regexp-list>
</attribute>
<attribute name="frameborder">
<regexp-list>
<regexp name="anything"/>
</regexp-list>
</attribute>
<attribute name="style"/>
</tag>
有什么想法吗?
答:
0赞
user1134181
10/13/2013
#1
试试这个 -
<tag name="iframe" action="validate"/>
并在此列表中添加一个标签 -
<allowed-empty-tags>
<literal-list>
<literal value="iframe"/>
</literal-list>
</allowed-empty-tags>
查看 http://code.google.com/p/owaspantisamy/...
评论
0赞
msangel
10/13/2013
这已经完成了。我更新了我的问题。问题是 - 它正确验证和处理。但是,如果标签的主体是空的 - 它将被替换为自封闭标签。但是,如果某些标签(iframe、form等)是自封闭的,则在浏览器中不起作用。
0赞
msangel
10/13/2013
相同。我已经有了这个。这是对允许自封闭标记的响应,但对标记转换没有影响。
0赞
msangel
10/13/2013
更重要的是 - 我已经有自己的类型和玩键:nekohtml.sourceforge.net/settings.html,但还没有结果。AntiSamySAXScanner
0赞
Vikas Sharma
7/11/2016
我有同样的问题。你是怎么解决的?
0赞
JHuckins
3/22/2019
#2
我遇到了同样的问题。就我而言,这是由于 AntiSamy 政策有以下指令:
<directive name="useXHTML" value="true" />
根据 OWASP 文档,它将以 XHTML 格式输出经过清理的数据,而不仅仅是常规 HTML。 请参阅:https://www.owasp.org/index.php/AntiSamy_Directives
将该值更改为 false 将允许将清理后的输出作为有效的 HTML 提供。块级元素不会被缩短并成为无效标记。
评论