Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie na Only-included
Forum PHP.pl > Forum > PHP
.radex
Includujący:
  1. <?php
  2. //.....
  3. define('x', true);
  4. //.....
  5. include('includowany.php');
  6. //.....
  7. ?>

Includowany:
  1. <?php
  2. if(!x) exit;
  3.  
  4. echo 'działa czy nie? oto jest pytanie....';
  5. ?>



Problem wyglada tak....

Niezależnie czy jest zdefiniowany x czy nie, cały czas sądzi że jest, co stanowi lukę w bezpieczeństwie
kwiateusz
chyba
  1. <?php
  2. if(!defined('x')) exit;
  3. ?>
mike
~radex_p pamiętaj, że PHP jest na tyle ułomne że kiedy używasz stałej/zmiennej, której nie ma to PHP wygeneruje NOTICE, że jej nie ma potem ją automatycznie stworzy i użyje. Dlatego musisz jawnie sprawdzić czy ona jest. Tak jak podał ~kwiateusz.

Spróbuj uruchomić też ten skrypt dając na samym początku:
  1. <?php
  2.  
  3. ini_set('display_errors', 1);
  4.  
  5. ?>
Najprawdopodobniej ujrzysz NOTICE winksmiley.jpg
.radex
Cytat
chybaphp1Kod PHP123ephp1<?phpif(!defined('x')) exit;?>


Nie. To działa odwrotnie o ile sie nie myle(zwraca ze jest zle), ale tez nie dziala dobrze

Michał, co mi daje, że wiem że on jej nie widzi? Ja wiem że standardowo php nie wyświtla notice. Samo rozwiązanie mnie interesuje:P
kwiateusz
a przetestowałeś to co napisałem? bo jakoś mi działa tak samo w CodeIgniter tak sprawdzają czy plik jest includowany tylko we frameworku...
.radex
Nie, ale już wcześniej rozważałem to co napisałeś. Nie używam żadnego frameworka( choć CI jest naprawdę fajny i prosty )
mike
Cytat(radex_p @ 10.05.2007, 18:20:16 ) *
Michał, co mi daje, że wiem że on jej nie widzi?
To była po prostu analiza problemu winksmiley.jpg

Cytat(kwiateusz @ 10.05.2007, 18:30:36 ) *
a przetestowałeś to co napisałem?
Cytat(radex_p @ 10.05.2007, 18:45:05 ) *
Nie, ale już wcześniej rozważałem to co napisałeś.
Zdecydowanie powinieneś smile.gif
Rozwiązanie działa smile.gif
.radex
okej, pomimo że już to robiłem spróbuje:P Mam nadzieje że ktoś przez ten czas odpisze, bo teraz ide, a jak napisze kolejnego posta, to się dołączy i temat się nie odkopie:P
kwiateusz
Cytat(radex_p @ 10.05.2007, 18:45:05 ) *
Nie używam żadnego frameworka( choć CI jest naprawdę fajny i prosty )


Ale tu akurat nie chodzi o to czego używasz tylko dałem przykład że działa i zostało np tam użyte, przecież prościej sie nie da sprawdzić czy jest jakaś zadeklarowana stała...
.radex
Dzięki kwiateusz! Nie wiem jak to się stało:P Już testowałem to co dałeś, ale nie działało, a jak żywcem skopiowałem to jakoś zadziałało:P
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.