Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie skryptów
Forum PHP.pl > Forum > Przedszkole
blaskognia
W kursie php znalazłem takie zdanie w związku ze zmiennymi globalnymi, a konkretniej z p fukncją POST

Cytat
"Wydaje się to wygodniejsze i łatwiejsze, lecz powoduje pewne niebezpieczeństwo. Mianowicie używając zmiennych globalnych nie można stwierdzić, czy dana wartość pochodzi z sesji czy może została podana w URLu metodą GET. Przy źle napisanych skryptach można tak obchodzić zabezpieczenia."


Jak zabezpieczać skrypty?
bełdzio
nie używać register global smile.gif, a jak już musisz to mocno filtruj winksmiley.jpg
blaskognia
Tzn.? Podaj jeśli możesz przykłądy filtrowania?
Radarek
Samo register globals moze byc wlaczone na serwerze. Po prostu jesli chcesz uzyc zmiennej x przekazywanej metoda GET to odwoluj sie przez $_GET['x']. Tak samo rob z $_POST, $_COOKIE, $_SESSION itp.
blaskognia
I to jest to filtrowanie? :- ) Bo jeśli tak to każdy skrypt to u mnie stosuje (co zrobiłem troche nieświadomie ;- ))

Jedno jeszcze pytanie... co z tym include?
strife
To już było poruszane, nawet jest temat przyklejony dotyczący bezpieczeństwa skryptów ... http://forum.php.pl/index.php?showtopic=30056
Radarek
Cytat(blaskognia @ 2006-01-28 19:45:13)
I to jest to filtrowanie? :- ) Bo jeśli tak to każdy skrypt to u mnie stosuje (co zrobiłem troche nieświadomie ;- ))

Jedno jeszcze pytanie... co z tym include?

Jesli to bylo pisane do mnie to odpisuje.

Nie, to nie jest przykald filtrowania, tylko pokazane jak odwolywac sie do zmiennych pochodzacych z konkretnych zrodel (GET, POST itp). Register global moze byc wlaczone i nie spowoduje to ze skryopty beda mniej bezpieczne.

A co do samego filtrowania, to bylo to juz poruszane na forum dziesiatki razy. Trzeba szukac smile.gif.
blaskognia
A czy istnieje możliwość włamania się gdy skrypt korzysta z sesji? Np.:

if ($_SESSION["zalogowany"]=="tak")
{

Jeżeli jest zalogowany, to coś tam wykonuje. Czy haker może to złamać?
Radarek
W 99% nie jest w stanie tego zlamac smile.gif. Zmienne sesyjne przechowywane sa na serwerze. Musialby dostac sie do plikow w ktorych przechowywane sa te zmienne. To tak w wielkim skrocie, bo nie wspominam tu o przechwytywaniu sesji itp.
blaskognia
Czyli na dobrą sprawę niemal 100% zabezpieczeniem jest zamknięcie wszystkich skryptów w

if ($_SESSION["zalogowany"]=="tak")
{

czy tak? :- D
ActivePlayer
przy register_globals = on

mając taki kod:

  1. <?php
  2.  
  3. if($zalogowany == true){
  4. //jakis ukryty kod
  5. }
  6.  
  7. ?>

zmienna $zalogowany pobirała wartość np w Twoim przypadku z sesji ale...
tajny_plik.php?zalogowany=1
i zmienna $zalogowany mogła przyjąć wartość true. ogolnei zamotka z tym była. najbezpieczenij uzywac $_GET $_POST itd. do tego sprawdzac czy przychadzące dane są idpowiedniego typu, is numeric itd. wiecej w temacie sql injection (przyklejony jest).
blaskognia
Ale ja nie napisałem:

if($zalogowany == true)

tylko:

if ($_SESSION["zalogowany"]=="tak")

To zmusza przecież do pobrania nie z pasa tylko konkretnie z sesji.
ActivePlayer
tak. to jest jak najbardziej poprawne w myśl 'bezpieczeństwa'
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.