Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pytanko - zmienna GET
Forum PHP.pl > Forum > Przedszkole
Ulysess
dobry wieczór jestem baaardzo radzkujący w php i stąd to pytanie..

czy np jeśli mamwww.mojastrona.pl/test.php?zmienna=2

to czy przypadkiem najlepszą i najprostrzą metodą filtracji tej zmiennej nie jest po prostu funkcją ABS przefiltorwać jej questionmark.gif a drugie pytanko czy jeśli ktoś zrobi czy np jeśli mamwww.mojastrona.pl/test.php?zmienna=2&kod=tutaj zlosliwy kod to czy to zadziała jeśli ja w zmiennej kod nie uzywałem tylko poprostu ktoś jej użył ?
croc
ad 1.

Zależy co masz na myśli pisząc dobra filtracja. Ja bym nie chciał, żeby mi skrypt traktował ?zmienna=-5 jako 5. Ale jest to jedna z bezpiecznych metod, bo zawsze da ci liczbę. Lepiej jednak dać intval() zachowując znak.


ad 2.

Coś ty tongue.gif To by była tragedia. Dopóki nie używasz $_GET['kod'] to nic ta wartość nie robi (aczkolwiek jest przesyłana). Ale to przecież TEKST.
Spawnm
kod dany w $_GET nie wykona się jeśli:
a) był to kod php a ty go nie dasz np. w eval()
b)był to kod javascript a ty go przed wyświetleniem przefiltrujesz np. htmlspecialchars()
Ulysess
1 - uff smile.gif dodatkowo na ogól używam jeszcze case
2 to bardzo dobrze smile.gif
hmm a w jaki sposób mógłbym sprawdzić czy zmienna get jest 'bezpieczna' ?

Spawnm rozumiem że to odnośnie dodania przez uzytkownika zmiennej questionmark.gif ale jak się mam przed tym zabezpieczyć skoro uzytkownik może przypisać złośliwy kod dowolnej zmiennej ?
Spawnm
Jeśli user tylko stworzy jakąś tam zmienną to nic nią nie zrobi.
filtrować musisz jeśli chcesz dać np. echo $_GET['cos'] itd.
croc
Spawnm nieco zaciemnił sprawę. Chodziło mu o sytuację, gdy TY dajesz do swojego kodu coś jak np.:
  1. echo $_GET['zmienna'];


A użytkownik wniesie do niej kod JavaScript, czyli:

skrypt.php?zmienna=<script>alert('HAHAHA_jestem_hakerem');</script> biggrin.gif
Ulysess
aaa . uff smile.gif staram się aby wartość ze zmiennej get służyłą do wykonania jakiegoś kodu niż to wyświetlenia tego a jeśli nawet wyświetlam to filtruje htmlspecialchars(addslashes($_GET['zmienna']))
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.