2013-10-13 16 views
6

Ich benutze Antisamy für die Validierung von HTML. Meine Richtlinien erlauben Iframes wie Youtube-Videos. Das Problem ist - wenn Tag leer ist (wie diese):Antisamie Parser Kraft schließendes Tag

<iframe src="//www.youtube.com/embed/uswzriFIf_k?feature=player_detailpage" allowfullscreen></iframe> 

als nach der Reinigung es so sein wird:

<iframe src="//www.youtube.com/embed/uswzriFIf_k?feature=player_detailpage" allowfullscreen/> 

Aber es sollte normalen End-Tag hat.

Und das brechen alle Inhalte auf der Seite nach. ich bereits meine Richtlinien setzen die meisten von HTML zu verwenden, aber nicht 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> 

Aber das ist nicht helfen.

UPD: Umschalten zwischen Parsern und Spielen mit Direktiven ergab immer noch keine Ergebnisse.

UPD2: In diesem Teil meiner Konfiguration ist verantwortlich für den Umgang mit iframe tag:

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

Jede Idee?

+0

Ich weiß, 4 Jahre vergangen .... aber durch Zufall kann Sie erinnern sich, ob Sie das gelöst haben? Für die letzten zwei Tage an Strohhalmen greifen – Rohan210

Antwort

0

Versuchen Sie, diese -

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

Und einen Tag zu dieser Liste hinzufügen -

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

Siehe http://code.google.com/p/owaspantisamy/...

+0

Das war getan. Ich aktualisiere meine Frage. Thnks. Problem ist - es validiert und handhabt richtig. Wenn das Tag jedoch einen leeren Körper hat, wird es durch ein selbst abgeschlossenes Tag ersetzt. Einige Tags (iframe, form, ...) funktionieren jedoch nicht im Browser, wenn sie selbst abgeschlossen sind. – msangel

+0

Ok. Fügen Sie der Liste ein Tag hinzu - 'allowed-empty-tags'. Ich habe die Antwort aktualisiert. Ich hoffe das hilft. –

+0

gleich. Ich habe das schon. Dies ist die Antwort für das Erlauben von selbst abgeschlossenen Tags, hat jedoch keinen Einfluss auf die Tag-Umwandlung. – msangel