2017-01-30 4 views
1

Ich benutze ckeditor 4.5 und wir haben vor kurzem den OWASP Html Sanitizer im Back-End für XSS-Angriffe Bildschirm hinzugefügt. Eines der Features dieses Tools ist ein Filter, welche Protokolle für href-Elemente erlaubt sind.Gibt es eine Möglichkeit, die Protokolle zu filtern erlaubt in einem href

Was wir gefunden haben, ist, dass, obwohl unsere Protokollliste die aus dem Link entspricht Leute Inhalte in Ckeditor mit verschiedenen Protokollen einfügen, die wir nicht unterstützen, z. was wir aus ckeditor herausfiltern möchten, damit wir keinen naiven Schnitt markieren. & einfügen als xss-Angriff.

Es scheint, als ob der AdvancedContentFilter einzelne Klassen und Stile angeben kann, aber keine href-Protokolle oder allgemeinere Attributwerte.

Ist es möglich, dies innerhalb von CKEDITOR zu tun?

Edit: Näher Ich denke, ich fügte hinzu:

config.disallowedContent = { 
    a: { 
     match: function(element) { 
      var allowedProtcols = /^(?:http|https|mailto|tel|ftp|news):/; 
      return !allowedProtcols.test(element.attributes.href); 
     } 
    } 
}; 

Leider, dass der Link-Taste verschwinden aus der Menüleiste zu machen scheint.

Antwort

0

Die Lösung ist eine Kombination aus Match-Funktion und speziellem Gehäuse-Cke-Test.

config.allowedContent = { 
    'a': { 
     match: function(element) { 
      if (element.attributes.href === 'cke-test') { return true; } 
      var allowedProtcols = /^(?:http|https|mailto|tel|ftp|news):/; 
      return allowedProtcols.test(element.attributes.href); 
     }, 
     attributes: '!href' 
    }, 
... 
}; 
Verwandte Themen