Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zabezpieczenie przed nieautoryzowanym dostępem
Forum PHP.pl > Forum > PHP
ColdFire
Witam. Ostatnimi czasy piszę sobie panel administratora i jak wiadomo są tam pliki do których zwykły śmiertelnik nie powinien mieć dostępu. W chwili obecnej chcę uchronić się przed dwoma potencjalnymi zagrożeniami:
1. ładowanie bezpośrednie (www.adres.strony.pl/link_do_panelu_admina/plik.php)
2. otwarcie pliku jeśli nie jest otwarta sesja admina (pkt. 2 łączy się niejako z pkt. 1)
na zabezpieczenie się przed tym wpadłem na teorytycznie 1, praktycznie 2 pomysły.
Pomysł 1:
w indexie:
  1. <?php
  2.  
  3. (...)
  4.  if(file_exists('link_do_pliku/.php'))
  5.  {
  6.  define('loaded_directly', '1');
  7.  include 'link_do_pliku.php';
  8.  }
  9. (...)
  10.  
  11. ?>

a w pliku takie zabezpieczenia:
  1. <?php
  2.  
  3. if (!defined('loaded_directly')) {
  4. die ('nie mozna ladowac bezposrednio');
  5. }
  6. if(!session_is_registered('admin')) {
  7. die ('brak uprawnien');
  8. }
  9.  
  10. ?>

natomiast drugi sposób jest niejako rozserzeniem pierwszego. w indexie dodaje
  1. <?php
  2. include ('../core/functions.php');
  3. ?>

w core mam
  1. <?php
  2.  
  3. function checksite() {
  4. if (!defined('loaded_directly')) {
  5. die ('nie mozna ladowac bezposrednio');
  6. }
  7. if(!session_is_registered('admin')) {
  8. die ('brak uprawnien');
  9. }
  10. }
  11.  
  12. ?>

a w pliku
  1. <?php
  2. securecheck();
  3. ?>
- teraz gdy nie wywołujemy przez index pojawia się call to undefined function i niby wszystko jest ok. No właśnie, czy da się jednak w jakiś sposób obejść te zabezpieczenie? jeśli tak, to jak temu zapobiec i/lub czy istnieją lepsze metody na ochronę (świta mi po głowie, czy prez dodanie do .htaccessa odpowiednich linijek tego nie rozwiązać)
Wszelkie porady mile widziane:)
NuLL
Pro -> php
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.