Bójmy się CSS?!
CSS to zdałoby się niewinna technologia. Przecież służy wyłącznie do zmiany wyglądu. Ale ten wygląd można zmienić w taki sposób, że będzie dezinformował. A jeśli jeszcze damy użytkownikowi możliwość łączenia (X)HTML i CSS w treści, która jest publikowana na stronie, to sytuacja może nam się wymknąć spod kontroli…
Oto aukcja na Allegro, taka jak tysiące innych.
Jednak, gdy klikniemy „Licytuj”, zostaniemy przeniesieni na zupełnie inny adres, poza serwis Allegro! Mamy więc tutaj klasyczny przykład phishingu.
Aukcja na Allegro(już usunięta)- Aukcja zarchiwizowana (7.07.2007 – wstawiłem link do wersji, która nie psuje wyglądu)
Co się stało? W opisie aukcji można umieszczać i HTML i CSS, bez specjalnych ograniczeń. Ktoś wpadł więc na pomysł, aby wstawić tam osobne warstwy z podrobioną stroną, które pozycjonowane absolutnie zakryły oryginalną treść aukcji.
Jaki jest sposób na uniknięcie takich sytuacji? Ano, albo zabronić użytkownikom używania CSS, albo dosyć żmudnie filtrować te własności CSS, które mogą być potencjalnie niebezpieczne. Ale które? Z powyższego przykładu widzimy, że na pewno pozycjonowanie. Czy jednak jakiś magik nie osiągnie podobnego efektu przy pomocy marginesów, własności padding i paru hacków?
Patrz też wątek na wykop.pl.
Podobne artykuły:
Być może zainteresują Cię następujące artykuły:
- Typi non habent, mBanku? Pamiętajmy o sierotkach
- Czy błędy w przeglądarkach wpływają na sprzedaż?
- Webpositioning po polsku
- Cała prawda o programistach?
- Edytory WYSIWYG i złe nawyki … developerów
Zapisz się na kanał RSS bloga i dołącz do ponad 1500 czytelników RSS.
4 lipca 2007 01:59
Nie chce mi się teraz logować na Allegro, tworzyć nowego szablonu i sprawdzać, ale chyba przy pomocy ujemnego marginesu, floata i odpowiedniego z-index też da radę taki numer odwinąć…
4 lipca 2007 12:45
A może po prostu zabronić tworzenia formularzy i ramek?
Oba elementy w opisie aukcji właściwie są niepotrzebne.
4 lipca 2007 14:47
Rafał, w tej aukcji nie było żadnych ramek lub formularzy – button zasymulowano zwykłym odnośnikiem obrazkowym.
4 lipca 2007 14:50
Rafałowi pewnie chodziło o to, że treść podrobionej strony umieszczona została w elemencie DIV. No, ale zablokowanie Divów nic nie da, bo przecież właściwości CSS można dodać do wielu innych elementów z podobnym skutkiem. Trzeba więc filtrować po CSS.
4 lipca 2007 15:22
Wydaję mi się że starczyłoby gdyby opis był w divie, a w CSS filtrowałoby position absolute.
4 lipca 2007 20:20
A ja jednak myślę, że Rafał myślał, jak i ja pierwotnie, że jest to
, a nie obrazek (btw, właśnie, dlaczego by tego o
czy
nie oprzeć?).
I chyba filtrowanie position: absolute; było by wystarczające, bo wszelkie inne paddingi czy marginy raczej spowodują rozjechanie się szablonu, a tutaj chodzi o całkowitą anonimowość. Raczej.
4 lipca 2007 20:21
Ups, tam miało być
<button />
oraz< input type="button" />
, zapomniałem, że WordPress interpretuje kod.4 lipca 2007 23:52
Pozwalanie na HTML jest w ogóle niebezpieczne — jest pierdyliard różnych atrybutów on-cośtam, pseudo-URL-i i IE-owych dziwactw, które mogą pozwolić na odpalenie skryptu modyfikującego DOM.
Na sam CSS jest częściowe, ale proste zabezpieczenie: kod użytkownika wrzucić w element z
position:relative; overflow:hidden
i z tego „uciec” mogą tylko elementy z position:fixed (które trzeba niestety wyfiltrować).Pozostaje jeszcze potem problem ograniczenia arkusza CSS użytkownika do określonego obszaru (żeby np. przez content:url() nie podmienił części strony) — do tego trzeba by parsować i przerabiać selektory.
Natomiast dowolny, potencjalnie wrogi HTML+CSS+JS da się opanować tylko poprzez umieszczenie go w ramce serwowanej z innej domeny.
6 lipca 2007 01:39
IMHO tworzenie wyrafinowanego wyglądu dla aukcji jest zupełnie zbędne.
Więcej szablonów + uproszczony markup
6 lipca 2007 09:27
wzs, myślę, że za to stwierdzenie wielu sprzedawców by Cię zamordowało. ;-) każde ograniczenie możliwości prezentacji to mniejsze szanse na wyróżnienie i realizację w ramach allegro jakiegoś programu wizerunkowego. W końcu dla wielu sprzedawców aukcje to tylko inny kanał sprzedaży; dlaczego ograniczać im to jak pokazują swoją ofertę?
6 lipca 2007 13:41
Oczywiście wiem, że to raczej nierealne- to tylko taka sugestia człowieka, którego wygląd aukcji przeważnie drażni i wystarczyłyby mu wersje tekstowe + zdjęcia produktu :)
8 lipca 2007 15:03
Wydaje mi się że dość skutecznym rozwiązaniem będzie aby użytkownicy sami zgłaszali moderacji wszystko to, co wyda im się podejrzane. Można im to ułatwić wprowadzając mechanizm np: powiadamiania, że dany link jest wychodzący z serwisu, czyli może być potencjalnie niebezpieczny dla użytkownika.
9 lipca 2007 01:17
Textile byłoby niegłupim wyjściem