diff --git a/lib/html_sanitizer.rb b/lib/html_sanitizer.rb index 65bcccff4..415401727 100644 --- a/lib/html_sanitizer.rb +++ b/lib/html_sanitizer.rb @@ -138,7 +138,7 @@ satinize html string based on whiltelist end next if !href.downcase.start_with?('http', 'ftp', '//') node.set_attribute('href', href) - node.set_attribute('rel', 'nofollow') + node.set_attribute('rel', 'nofollow noreferrer noopener') node.set_attribute('target', '_blank') end @@ -338,7 +338,7 @@ cleanup html string: a = Nokogiri::XML::Node.new 'a', node.document a['href'] = url - a['rel'] = 'nofollow' + a['rel'] = 'nofollow noreferrer noopener' a['target'] = '_blank' a.content = url diff --git a/test/unit/aaa_string_test.rb b/test/unit/aaa_string_test.rb index eb34a3dcd..68fe0e1ed 100644 --- a/test/unit/aaa_string_test.rb +++ b/test/unit/aaa_string_test.rb @@ -532,42 +532,42 @@ Men-----------------------' assert_equal(result, html.html2html_strict) html = 'http://example.com' - result = 'http://example.com' + result = 'http://example.com' assert_equal(result, html.html2html_strict) html = 'http://example.com?a=1;' - result = 'http://example.com?a=1;' + result = 'http://example.com?a=1;' assert_equal(result, html.html2html_strict) html = 'http://example.com/withSoMeUpper/And/downCase' - result = 'http://example.com/withSoMeUpper/And/downCase' + result = 'http://example.com/withSoMeUpper/And/downCase' assert_equal(result, html.html2html_strict) html = 'web.de' - result = 'web.de' + result = 'web.de' assert_equal(result, html.html2html_strict) html = 'web.de' - result = 'web.de' + result = 'web.de' assert_equal(result, html.html2html_strict) html = '
https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap
' - result = 'https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap
' + result = 'https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap
' assert_equal(result, html.html2html_strict) html = 'https://wiki.lab.example.com/doku.php?id=xxxx:start&a=1;#ldap
' - result = 'https://wiki.lab.example.com/doku.php?id=xxxx:start&a=1;#ldap
' + result = 'https://wiki.lab.example.com/doku.php?id=xxxx:start&a=1;#ldap
' assert_equal(result, html.html2html_strict) html = "Von: Fritz Bauer [mailto:me@example.com]
Gesendet: Donne
assert_equal(result, html.html2html_strict)
html = "
T: +49 (0) 12345/1234560-0
F: +49 (0) 12345/1234560-2
annad@example.com
- +Geschäftsführer Vor Nach, VorUndZu Nach - Amtsgericht Dort HRB 12345 - Ein Unternehmer der ABC Gruppe
http://www.example.com/?wm=mail
' - result = 'http://www.example.com/?wm=mail
' + #result = 'http://www.example.com/?wm=mail
' + result = 'http://www.example.com/?wm=mail
' assert_equal(result, html.html2html_strict) html = '' - #result = 'http://www.example.com/?wm=mail
' - result = 'http://www.example.com/?wm=mail
' + #result = 'http://www.example.com/?wm=mail
' + result = 'http://www.example.com/?wm=mail
' assert_equal(result, html.html2html_strict) html = 'Mit freundlichen Grüßen
John Günther
-
example.com (http://www.GeoFachDatenServer.de) – profitieren Sie vom umfangreichen Daten-Netzwerk
+example.com (http://www.GeoFachDatenServer.de) – profitieren Sie vom umfangreichen Daten-Netzwerk
_ __ ___ ____________________________ ___ __ _
@@ -94,7 +94,7 @@ Old programmers never die. They just branch to a new address.
M: +49 (0) XXX XX XX 70
T: +49 (0) XXX XX XX 22
F: +49 (0) XXX XX XX 11
- +
Geschäftsführer: John Smith
HRB XXXXXX AG Someware
@@ -114,7 +114,7 @@ Old programmers never die. They just branch to a new address.
a) LDAP Muster Konfigdatei
-
https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap
+https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap
PS: Es gibt noch eine Reihe weiterer Möglichkeiten, vor allem im Bezug auf Agenten-Rechte/LDAP Gruppen Synchronisation. Wenn Ihr hier weitere Informationen benötigt, einfach im Wiki die Aufgabenbeschreibung rein machen und ich kann eine Beispiel-Config dazu legen.
@@ -125,7 +125,7 @@ Old programmers never die. They just branch to a new address.
Wer Interesse hat, bitte eine Email an mich und ich versende Zugänge zu den Beta-Test-Systemen. Nach ca. 2 Wochen werden wir die Erweiterungen in der Version 1.0 veröffentlichen.
c) XXXX Entwickler Schulung
-Weil es immer wieder Thema war, falls jemand Interesse hat, das XXXX bietet nun auch OTRS Entwickler Schulungen an (http://www.example.com/kurs/xxxx_entwickler/).
+Weil es immer wieder Thema war, falls jemand Interesse hat, das XXXX bietet nun auch OTRS Entwickler Schulungen an (http://www.example.com/kurs/xxxx_entwickler/).
d) Genelle Fragen?
Haben sich beim ein oder anderen generell noch Fragen aufgetan?
@@ -135,7 +135,7 @@ Old programmers never die. They just branch to a new address.-Fritz
On May 2, 2012, at 14:25 , John Smith wrote:
Moin Moin,
die Antwort ist zwar etwas spät, aber nach der Schulung war ich krank und danach
hatte ich viel zu tun auf der Arbeit, sodass ich keine Zeit für XXXX hatte.
Ich denke das ist allgemein das Problem, wenn sowas nebenbei gemacht werden muss.
Wie auch immer, danke für die mail mit dem ITSM Zusatz auch wenn das zur Zeit bei der Example nicht relevant ist.
Ich habe im XXXX Wiki den Punkt um die Vorlagen angefügt.
Ticket Template von John Bäcker
Bei uns habe ich das Ticket Template von John Bäcker in der Version 0.1.96 unter XXXX 3.0.10 implementiert.
Fritz wollte sich auch um das andere Ticket Template Modul kümmern und uns zur Verfügung stellen, welches unter XXXX 3.0 nicht lauffähig sein sollte.
Im Wiki kann ich die LDAP Muster Konfigdatei nicht finden.
Hat die jemand von euch zufälligerweise ?
Danke und Gruß
John Smith
Am 4. April 2012 08:24 schrieb Smith, John Marian <john.smith@example.com>:
Hallo zusammen,
ich hoffe Ihr seid noch gut nach Hause gekommen am Mittwoch. Der XXX Kurs Donnerstag und Freitag war noch ganz gut, wobei ich mir den letzten halben Tag eigentlich hätte schenken können.
Soweit ich weiß arbeitet Ihr nicht mit XXX? Falls doch habe ich hier eine tolle (eigentlich) kostenpflichtige Erweiterung für Euch.
Es handelt sich um eine programmiertes Paket von der XXXX AG. Die Weitergabe ist legal.
Mit dem Paket kann man Anhänge an CI’s (Configuration Items) verknüpfen. Das ist sehr praktisch wenn man zum Beispiel Rechnungen an Server, Computern und und und anhängen möchte.
Der Dank geht an Frank Linden, der uns das Paket kostenlos zur Verfügung gestellt hat.
Viele Grüße aus Someware
John
_________________________
SysAdmin
John Marian Smith
IT-Management
Example GmbH & Co. KG
Der Provider für
Mehrwertdienste & YYY
Someware 23
XXXXX Someware
Tel. (01802) XX XX XX - 42
Fax (01802) XX XX XX - 99
nur 6 Cent je Anruf aus dem dt. Festnetz,
max. 42 Cent pro Min. aus dem Mobilfunknetz
E-Mail john.smith@Example.de
Web www.Example.de
Amtsgericht Hannover HRA xxxxxxxx
Komplementärin: Example Verwaltungs- GmbH
Vertreten durch: Somebody, Somebody
Amtsgericht Someware HRB XXX XXX
_________________________
Highlights der Example Contact Center-Suite:
Virtual XXX&Power-XXX, Self-Services&XXX-Portale,
XXX-/Web-Kundenbefragungen, CRM, PEP, YYY
Moin Moin,
die Antwort ist zwar etwas spät, aber nach der Schulung war ich krank und danach
hatte ich viel zu tun auf der Arbeit, sodass ich keine Zeit für XXXX hatte.
Ich denke das ist allgemein das Problem, wenn sowas nebenbei gemacht werden muss.
Wie auch immer, danke für die mail mit dem ITSM Zusatz auch wenn das zur Zeit bei der Example nicht relevant ist.
Ich habe im XXXX Wiki den Punkt um die Vorlagen angefügt.
Ticket Template von John Bäcker
Bei uns habe ich das Ticket Template von John Bäcker in der Version 0.1.96 unter XXXX 3.0.10 implementiert.
Fritz wollte sich auch um das andere Ticket Template Modul kümmern und uns zur Verfügung stellen, welches unter XXXX 3.0 nicht lauffähig sein sollte.
Im Wiki kann ich die LDAP Muster Konfigdatei nicht finden.
Hat die jemand von euch zufälligerweise ?
Danke und Gruß
John Smith
Am 4. April 2012 08:24 schrieb Smith, John Marian <john.smith@example.com>:
Hallo zusammen,
ich hoffe Ihr seid noch gut nach Hause gekommen am Mittwoch. Der XXX Kurs Donnerstag und Freitag war noch ganz gut, wobei ich mir den letzten halben Tag eigentlich hätte schenken können.
Soweit ich weiß arbeitet Ihr nicht mit XXX? Falls doch habe ich hier eine tolle (eigentlich) kostenpflichtige Erweiterung für Euch.
Es handelt sich um eine programmiertes Paket von der XXXX AG. Die Weitergabe ist legal.
Mit dem Paket kann man Anhänge an CI’s (Configuration Items) verknüpfen. Das ist sehr praktisch wenn man zum Beispiel Rechnungen an Server, Computern und und und anhängen möchte.
Der Dank geht an Frank Linden, der uns das Paket kostenlos zur Verfügung gestellt hat.
Viele Grüße aus Someware
John
_________________________
SysAdmin
John Marian Smith
IT-Management
Example GmbH & Co. KG
Der Provider für
Mehrwertdienste & YYY
Someware 23
XXXXX Someware
Tel. (01802) XX XX XX - 42
Fax (01802) XX XX XX - 99
nur 6 Cent je Anruf aus dem dt. Festnetz,
max. 42 Cent pro Min. aus dem Mobilfunknetz
E-Mail john.smith@Example.de
Web www.Example.de
Amtsgericht Hannover HRA xxxxxxxx
Komplementärin: Example Verwaltungs- GmbH
Vertreten durch: Somebody, Somebody
Amtsgericht Someware HRB XXX XXX
_________________________
Highlights der Example Contact Center-Suite:
Virtual XXX&Power-XXX, Self-Services&XXX-Portale,
XXX-/Web-Kundenbefragungen, CRM, PEP, YYY
this is a test
this is a test
Geschäftsführer der example Straubing-Bogen
Klosterhof 1 | 94327 Bogen-Oberalteich
Tel: 09422-505601 | Fax: 09422-505620
-Internet: http://example-straubing-bogen.de
-Facebook: http://facebook.de/examplesrbog
+Internet: http://example-straubing-bogen.de
+Facebook: http://facebook.de/examplesrbog
- European Foundation für Quality Management
Lieber CYLEX Eintragsinhaber,
das Jahr neigt sich dem Ende und die besinnliche Zeit beginnt laut Kalender mit dem
1. Advent. Und wie immer wird es in der vorweihnachtlichen Zeit meist beruflich und privat
so richtig schön hektisch.
Um Ihre Weihnachtsstimmung in Schwung zu bringen kommen wir nun mit unserem Adventskalender ins Spiel. Denn 24 Tage werden Sie unsere netten Geschichten, Rezepte und Gewinnspiele sowie ausgesuchte Geschenktipps und Einkaufsgutscheine online begleiten. Damit lässt sich Ihre Freude auf das Fest garantiert mit jedem Tag steigern.
Ihr CYLEX Team
+ body: 'http://newsletters.cylex.de/ref/www.cylex.de/sid-105/uid-4134001/lid-2/http://web2.cylex.de/advent2012?b2b
+
Lieber CYLEX Eintragsinhaber,
das Jahr neigt sich dem Ende und die besinnliche Zeit beginnt laut Kalender mit dem
1. Advent. Und wie immer wird es in der vorweihnachtlichen Zeit meist beruflich und privat
so richtig schön hektisch.
Um Ihre Weihnachtsstimmung in Schwung zu bringen kommen wir nun mit unserem Adventskalender ins Spiel. Denn 24 Tage werden Sie unsere netten Geschichten, Rezepte und Gewinnspiele sowie ausgesuchte Geschenktipps und Einkaufsgutscheine online begleiten. Damit lässt sich Ihre Freude auf das Fest garantiert mit jedem Tag steigern.
Ihr CYLEX Team
-P.S. Damit Sie keinen Tag versäumen, empfehlen wir Ihnen den Link des Adventkalenders (http://newsletters.cylex.de/ref/www.cylex.de/sid-105/uid-4134001/lid-3/http://web2.cylex.de/advent2012?b2b) in
Ihrer Lesezeichen-Symbolleiste zu ergänzen.
Telefon ServiceDesk: (069) 11 1111 – 12 22
Telefax: (069) 11 1111 – 14 85
Internet: www.example.com
-----Ursprüngliche Nachricht-----
Von: Martin Edenhofer via Znuny Sales [mailto:example@znuny.com]
Gesendet: Freitag, 30. November 2012 13:50
An: Smith, Alex
Betreff: Agenda [Ticket#11995]
@@ -438,7 +438,7 @@ Newsletter abbestellen (http://znuny.com +
Location: Berlin - HRB 139852 B Amtsgericht Berlin-Charlottenburg Managing Director: Martin Edenhofer
@@ -518,7 +518,7 @@ Newsletter abbestellen (', from_email: '"我" <>', @@ -563,7 +563,7 @@ Newsletter abbestellen (We want to keep you updated on TeamViewer licensing shortages on a regular basis.
We would like to inform you that since the last message on 25-Nov-2014 there have been temporary session channel exceedances which make it impossible to establish more sessions. Since the last e-mail this has occurred in a total of 1 cases.
Additional session channels can be added at any time. Please visit our TeamViewer Online Shop (https://www.teamviewer.com/en/licensing/update.aspx?channel=D842CS9BF85-P1009645N-348785E76E) for pricing information.
Thank you - and again all the best with TeamViewer!
Best regards,
Your TeamViewer Team
P.S.: You receive this e-mail because you are listed in our database as person who ordered a TeamViewer license. Please click here (http://www.teamviewer.com/en/company/unsubscribe.aspx?id=1009645&ident=E37682EAC65E8CA6FF36074907D8BC14) to unsubscribe from further e-mails.
-----------------------------We want to keep you updated on TeamViewer licensing shortages on a regular basis.
We would like to inform you that since the last message on 25-Nov-2014 there have been temporary session channel exceedances which make it impossible to establish more sessions. Since the last e-mail this has occurred in a total of 1 cases.
Additional session channels can be added at any time. Please visit our TeamViewer Online Shop (https://www.teamviewer.com/en/licensing/update.aspx?channel=D842CS9BF85-P1009645N-348785E76E) for pricing information.
Thank you - and again all the best with TeamViewer!
Best regards,
Your TeamViewer Team
P.S.: You receive this e-mail because you are listed in our database as person who ordered a TeamViewer license. Please click here (http://www.teamviewer.com/en/company/unsubscribe.aspx?id=1009645&ident=E37682EAC65E8CA6FF36074907D8BC14) to unsubscribe from further e-mails.
-----------------------------Diese e-Mail ist ausschließlich für den beabsichtigten Empfänger bestimmt. Sollten Sie irrtümlich diese e-Mail erhalten haben, unterrichten Sie uns bitte umgehend unter kontakt@example.com und vernichten Sie diese Mitteilung einschließlich der ggf. beigefügten Dateien.
Weil wir die Echtheit oder Vollständigkeit der in dieser Nachricht enthaltenen Informationen nicht garantieren können, bitten wir um Verständnis, dass wir zu Ihrem und unserem Schutz die rechtliche Verbindlichkeit der vorstehenden Erklärungen ausschließen, soweit wir mit Ihnen keine anders lautenden Vereinbarungen getroffen haben.
Diese e-Mail ist ausschließlich für den beabsichtigten Empfänger bestimmt. Sollten Sie irrtümlich diese e-Mail erhalten haben, unterrichten Sie uns bitte umgehend unter kontakt@example.com und vernichten Sie diese Mitteilung einschließlich der ggf. beigefügten Dateien.
Weil wir die Echtheit oder Vollständigkeit der in dieser Nachricht enthaltenen Informationen nicht garantieren können, bitten wir um Verständnis, dass wir zu Ihrem und unserem Schutz die rechtliche Verbindlichkeit der vorstehenden Erklärungen ausschließen, soweit wir mit Ihnen keine anders lautenden Vereinbarungen getroffen haben.
Geben Sie diese Information an den Direktor oder den für Marketing und Umsatzsteigerung verantwortlichen Mitarbeiter Ihrer Firma weiter!
Hallo,
Geben Sie diese Information an den Direktor oder den für Marketing und Umsatzsteigerung verantwortlichen Mitarbeiter Ihrer Firma weiter!
Hallo,
Bei uns können Sie mit nur wenigen Clicks Geschäftskontakte verschiedener Länder erwerben.
Dies ist eine schnelle und bequeme Methode, um Daten zu einem vernünftigen Preis zu erhalten.
Alle Daten werden ständig aktualisiertm so dass Sie sich keine Sorgen machen müssen.
XLS-Muster herunterladen - (http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0LnNzdXJobGZzZWVsdGEtLm10cmVzb2YvY2VtL2xpZ25pYWlnaV9hbC9zOG1lOXgyOTdzZW1hL2VlL2xwZWxheHB4Q18ubXhzfEhsODh8Y2M=)
Datenbank bestellen - (http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0bmFvY3B0LXlhbW9sc2Nhb3NnYy5lL3RpbXJlZi9lbS9ycnJuaWFpZXMsdGxnaWVpLGUzZHx4bnxlZWY=)
Die Anmeldung ist absolut kostenlos und unverbindlich. Sie können die Kataloge gemäß Ihren eigenen Kriterien filtern und ein kostenloses Datenmuster bestellen, sobald Sie sich angemeldet haben.
Wir haben Datenbanken der folgenden Länder:
Anwendungsmöglichkeiten für Geschäftskontakte
Bei uns können Sie mit nur wenigen Clicks Geschäftskontakte verschiedener Länder erwerben.
Dies ist eine schnelle und bequeme Methode, um Daten zu einem vernünftigen Preis zu erhalten.
Alle Daten werden ständig aktualisiertm so dass Sie sich keine Sorgen machen müssen.
XLS-Muster herunterladen + (http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0LnNzdXJobGZzZWVsdGEtLm10cmVzb2YvY2VtL2xpZ25pYWlnaV9hbC9zOG1lOXgyOTdzZW1hL2VlL2xwZWxheHB4Q18ubXhzfEhsODh8Y2M=)
Datenbank bestellen + (http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0bmFvY3B0LXlhbW9sc2Nhb3NnYy5lL3RpbXJlZi9lbS9ycnJuaWFpZXMsdGxnaWVpLGUzZHx4bnxlZWY=)
Die Anmeldung ist absolut kostenlos und unverbindlich. Sie können die Kataloge gemäß Ihren eigenen Kriterien filtern und ein kostenloses Datenmuster bestellen, sobald Sie sich angemeldet haben.
Wir haben Datenbanken der folgenden Länder:
Anwendungsmöglichkeiten für Geschäftskontakte
Sie können Abschnitte wählen (filtern) Empfänger gemäß Tätigkeitsbereichen und Standort der Firmen, um die Effizienz Ihrer Werbemaßnahmen zu erhöhen.
Für jeden Kauf von 2016-11-05 23:59:59
wir gewähren 30% Rabatt
RABATTCODE: WZ2124DD
Bestellen Sie online bei:
company-catalogs.com (http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0bmFvY3B0LXlhbW9sc2Nhb3NnYy5lL3RpbXJlZi9lbS9ycnJuaWFpZXMsdGxnaWVpLGUzZHx4bnxlZWY=)
Für weitere Informationen:
E-Mail: databases.en@example.com
Telefon: +370-52-071554 (languages: EN, PL, RU, LT)
Sie können Abschnitte wählen (filtern) Empfänger gemäß Tätigkeitsbereichen und Standort der Firmen, um die Effizienz Ihrer Werbemaßnahmen zu erhöhen.
Für jeden Kauf von 2016-11-05 23:59:59
wir gewähren 30% Rabatt
RABATTCODE: WZ2124DD
Bestellen Sie online bei:
company-catalogs.com (http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0bmFvY3B0LXlhbW9sc2Nhb3NnYy5lL3RpbXJlZi9lbS9ycnJuaWFpZXMsdGxnaWVpLGUzZHx4bnxlZWY=)
Für weitere Informationen:
E-Mail: databases.en@example.com
Telefon: +370-52-071554 (languages: EN, PL, RU, LT)
'), ' '), '')
assert_equal(HtmlSanitizer.strict('test'), 'test')
- assert_equal(HtmlSanitizer.strict('test'), 'test')
- assert_equal(HtmlSanitizer.strict('test', true), 'https://some/path (test)')
+ assert_equal(HtmlSanitizer.strict('test'), 'test')
+ assert_equal(HtmlSanitizer.strict('test', true), 'https://some/path (test)')
assert_equal(HtmlSanitizer.strict(' ", article3.body, 'article3.body verify - inbound')
article4 = Ticket::Article.create(
ticket_id: ticket.id,
@@ -150,7 +150,7 @@ class TicketXssTest < ActiveSupport::TestCase
updated_by_id: 1,
created_by_id: 1,
)
- assert_equal('some message article helper test1 abc 123123', article8.body, 'article8.body verify - inbound')
+ assert_equal('some message article helper test1 abc 123123', article8.body, 'article8.body verify - inbound')
end
|