![]() |
![]() ![]() |
![]() |
![]()
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.
-------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
![]()
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
![]() ![]() -------------------- |
|
|
![]()
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 ![]() ![]() -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
![]()
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 ![]() ![]() poprawiam ![]() bez spacji oczywiście bbcode sam dodaje ![]() 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 ![]() Ewentualnie wypadało by jeszcze filtrować słowo "java script:" ![]() Chyba się nie mylę? ![]() ![]() // EDIT widzę, że tutaj też chyba działa jakieś dziwne zabezpieczenie na XSS bo słowo "javascript" zamienia mi na "java script" ze spacją ![]() ![]() Ten post edytował bmL 16.10.2009, 11:29:21 -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.08.2025 - 18:07 |