![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Witam, ostatnimi czasu znajomy powiedział mi że htmlspecialchars nie jest wystarczającym zabezpieczeniem przeciw atakom XSS. Niestety on sam nie może znaleźć źródła tekstu który o tym traktował a swoją opinię aktualnie opiera jedynie na tym że popularne frameworki korzystają z własnych systemów filtrowania, zamiast robić używając htmlspecialchars.
Tak więc moje pytanie brzmi czy istnieje możliwość wykonania ataku XSS niech to będzie dla przykładu alert('test') nie koniecznie atak ale kod js.
|
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 2 Dołączył: 25.09.2009 Ostrzeżenie: (0%)
|
to Twój znajomy taką informację chyba z kieszeni wyciągnął
Kod http://php.net/manual/en/function.htmlspecialchars.php funkcja filtruje np. < i > przez co atak XSS nie wyjdzie ponieważ konieczne jest użycie tagów <script> (< i > zostaną zamienione na '<' i '>' ) frameworki MOGĄ maskować takie funkcje jak właśnie htmlspecialchars() pod własnymi funkcjami filtrującymi (mogą przepuszczać dane przez kilka funkcji filtrujących) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%)
|
oczywiście, że istnieje (IMG:style_emoticons/default/smile.gif) wystarczy pobawić się atrybutami (IMG:style_emoticons/default/smile.gif) => http://www.beldzio.com/xss-w-serwie-wirtualnej-polski
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%)
|
W sumie myślałem o takim sposobie ale uważałem to za mało groźne bo kto bezmyślnie pakuje takie zmienne do tagów html. Tylko nie zwróciłem uwagi że czasem do titla się wrzuca a ostatnio coraz częściej m.in dla lepszej indeksacji przez google.
Czyli miał rację i w skrócie dodatkowo trzeba escape'ować/usunąć cudzysłowy i apostrofy (IMG:style_emoticons/default/smile.gif) Poprawcie mnie jeżeli się mylę (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%)
|
Czyli miał rację i w skrócie dodatkowo trzeba escape'ować/usunąć cudzysłowy i apostrofy (IMG:style_emoticons/default/smile.gif) Poprawcie mnie jeżeli się mylę (IMG:style_emoticons/default/smile.gif) poprawiam (IMG:style_emoticons/default/smile.gif) ) bez spacji oczywiście bbcode sam dodaje (IMG:style_emoticons/default/smile.gif) Ten post edytował bełdzio 15.10.2009, 19:08:35 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Ale nikt nie pakuje raczej zmiennych do "onmouseover" i innych atrybutów które standardowo są interpretowane jako js. ale do takich atrybutów jak "title" to się raczej dość często spotyka czyli:
Żeby zamknąć href="" i otworzyć nowy który może być interpretowany jako js. musisz użyć cudzysłowu (IMG:style_emoticons/default/winksmiley.jpg) Ewentualnie wypadało by jeszcze filtrować słowo "java script:" (IMG:style_emoticons/default/smile.gif) Chyba się nie mylę? (IMG:style_emoticons/default/smile.gif) ponownie proszę o poprawienie jeżeli jest inaczej (IMG:style_emoticons/default/smile.gif) // EDIT widzę, że tutaj też chyba działa jakieś dziwne zabezpieczenie na XSS bo słowo "javascript" zamienia mi na "java script" ze spacją (IMG:style_emoticons/default/smile.gif) Tak jak pisał poprzednik może i bbcode (IMG:style_emoticons/default/tongue.gif) Ten post edytował bmL 16.10.2009, 11:29:21 |
|
|
|
![]() ![]() |
|
Aktualny czas: 18.12.2025 - 14:39 |