Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Tach zusammen,

kennt sich jemand mit Whitelists aus? Ich habe ein Webapplikationen mit Freitextfeldern. Diese möchte ich gegen XSS schützen. Da eine Blacklist ja keinen ausreichenden Schutz bietet, möchte ich eine Whitelist erstellen. Wie mach ich das, also welchen Zeichen sollen da drin steht, weil wenn ich z.B. sage es sind alle Zeichen a-z und sonderzeichen auch, dann könnte ich ja auch <script> schreiben, was ja gefährlich ist.

Geschrieben

Servus,

ich kenne zwar die Bedenken der OWASP bezüglich einer Blacklist, in meinen Projekten arbeite ich aber immer mit einer solchen. Ich verbiete z.B. die Zeichen '>' und '<'. Wenn diese bei bestimmten Formularen benötigt werden, dann werden sie vor der Anzeige escaped. Und wenn ich komplette Textabschnitte speichern muss, die Markup enthalten, dann arbeite ich gerne mit Antisamy (für Java), weil ich dort sehr genau festlegen kann, welche Elemente und welche Attribute ich erlaube.

Das alles hängt aber sehr stark von den fachlichen Anforderungen an das Textfeld ab. Was hast Du denn für Vorgaben: Welche Daten werden in den Formularen erfasst, was ist (fachlich) erlaubt, was nicht? Erst dann kann man die richtige Strategie entwickeln.

Schöne Grüße,

Peter

Geschrieben

Na ja im Prinzip soll kein Sonderzeichen komplett ausgeschlossen werden.

Also z.B. das "<" oder ">" soll schon möglich sein. Nur die gefährliche Kombination mit "script" o.ä. soll verboten werden. Wie macht man das am besten? Weil durch solche Kombination kann ich ja keine einfache Liste erstellen mit erlaubten zeichen. Weil wenn ich eigetlich alle Zeichen erlaube, wie kann ich dann z.b. ein "<script>" ausschließen?

Geschrieben

Wenn Du einzelne Zeichen nicht ausschließen kannst oder willst, dann musst Du halt Zeichenketten filtern. Dann eben "<script>" als ganzes, zusätzlich natürlich alle encodierten, aber für den Browser decodierbaren Varianten und wahrscheinlich noch das "javascript:" Pseudoprotokoll. Aber da kommt es wieder darauf an (s.o.), was die Daten fachlich machen sollen. Das heißt, wo zeigst Du diese Daten wieder an? Wenn sie nie mehr im Kontext von Markup gezeigt werden, ist XSS uninteressant. Ansonsten musst Du die Zeichen eben bei der Ausgabe encodieren, nicht bei der Eingabe filtern.

Peter

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...