2013-10-13 13 views
6

Uso Antisamy per la convalida dell'HTML. La mia politica consente iframe, come i video di YouTube. Il problema è - se tag è vuota (come questo):antisamy parser force chiusura tag

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

che dopo la pulizia sarà simile a questo:

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

Ma dovrebbe avere normale tag di chiusura.

E questo interrompe tutto il contenuto dopo la pagina. ho già impostato il mio direttive di utilizzare la maggior parte del codice HTML, ma non 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> 

Ma questo non aiuta.

UPD: il passaggio tra i parser e la riproduzione con le direttive non ha ancora dato alcun risultato.

UPD2: questo fa parte della mia configurazione, responsabile per la gestione 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> 

Qualche idea?

+0

So che sono passati 4 anni .... ma per caso, può ricordi se sei riuscito a risolvere questo? Afferrando le cannucce per gli ultimi due giorni – Rohan210

risposta

0

Prova questo -

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

E aggiungere un tag a questa lista -

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

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

+0

Questo è stato fatto. Aggiorno la mia domanda Thnks. Il problema è: convalida e gestisce correttamente. Ma se il tag ha un corpo vuoto, viene sostituito con un tag auto-compilato. Ma alcuni tag (iframe, form, ...) non funzionano nel browser se vengono chiusi automaticamente. – msangel

+0

Ok. Prova ad aggiungere un tag alla lista - 'allowed-empty-tags'. Ho aggiornato la risposta. Spero che aiuti. –

+0

stesso. Ho già questo. Questa è una risposta per consentire il tag selfclosed, ma non ha alcun impatto sulla trasformazione del tag. – msangel