5

私は HTML の検証に Antisamy を使用しています。私のポリシーでは、YouTube 動画などの iframe を許可しています。問題は-タグが空の場合(このように):

<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/>

ただし、通常の終了タグが必要です。

そして、これにより、ページのすべてのコンテンツが中断されます。XML ではなくほとんどの HTML を使用するようにディレクティブを既に設定しています。

<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: パーサーを切り替えてディレクティブを操作しても、結果は得られませんでした。

iframeUPD2: これは私の構成の一部であり、タグの処理を担当します:

    <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>

何か案が?

4

2 に答える 2

0

これを試して -

<tag name="iframe" action="validate"/>

そして、このリストにタグを追加します -

<allowed-empty-tags>
   <literal-list>
      <literal value="iframe"/>
   </literal-list>
</allowed-empty-tags>

http://code.google.com/p/owaspantisamy/...を参照してください。

于 2013-10-13T09:11:04.137 に答える
0

私は同じ問題に遭遇しました。私の場合、それは次のディレクティブを持つ AntiSamy ポリシーが原因でした。

<directive name="useXHTML" value="true" /> 

OWASP ドキュメントによると、サニタイズされたデータは通常の HTML ではなく XHTML 形式で出力されます。参照してください: https://www.owasp.org/index.php/AntiSamy_Directives

この値を false に変更すると、サニタイズされた出力を有効な HTML として提供できます。ブロック レベルの要素は短縮されず、無効なマークアップになります。

于 2019-03-22T15:20:08.317 に答える