Skocz do linków, Skocz do treści

Bójmy się CSS?!

4 lipca 2007 1:15. Autor: Robert Drózd. Komentarze (13) »

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.

Podrobiona aukcja w allegro

Jednak, gdy klikniemy „Licytuj”, zostaniemy przeniesieni na zupełnie inny adres, poza serwis Allegro! Mamy więc tutaj klasyczny przykład phishingu.

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:

Zapisz się na kanał RSS bloga i dołącz do ponad 1500 czytelników RSS.

Zostań fanem WebAudit na Facebooku.

Komentarze czytelników

Śledź komentarze do tego artykułu: format RSS
  1. Tomasz Topa

    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ąć…

  2. Rafał

    A może po prostu zabronić tworzenia formularzy i ramek?
    Oba elementy w opisie aukcji właściwie są niepotrzebne.

  3. Adriano

    Rafał, w tej aukcji nie było żadnych ramek lub formularzy – button zasymulowano zwykłym odnośnikiem obrazkowym.

  4. Robert Drózd

    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.

  5. Adam Klobukowski

    Wydaję mi się że starczyłoby gdyby opis był w divie, a w CSS filtrowałoby position absolute.

  6. Marcin (Ktos)

    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.

  7. Marcin (Ktos)

    Ups, tam miało być <button /> oraz &lt input type="button" />, zapomniałem, że WordPress interpretuje kod.

  8. porneL

    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.

  9. wzs

    IMHO tworzenie wyrafinowanego wyglądu dla aukcji jest zupełnie zbędne.
    Więcej szablonów + uproszczony markup

  10. Robert Drózd

    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ę?

  11. wzs

    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 :)

  12. Tyhagara

    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.

  13. Grzegorz Wolański

    Textile byłoby niegłupim wyjściem

Zostaw komentarz

W komentarzu można (choć nie trzeba) używać podstawowych znaczników XHTML. Komentarze zawierające w podpisie słowa kluczowe mogą zostać potraktowane jako spam i usunięte.