Webcity.pl


  Planowanie aplikacji...

  Obsługa stref czasow...

  [PHP] Wprowadź numer...

  Edytor BBCode w Java...

  Korzystanie i tworze...

 

 02.02.06 - [new] E-video - artykuł

 30.01.06 - [update] Artykuł o sesjach

 18.12.05 - [update] PDO - artykuł

 19.08.05 - [new+upd] Aktualizacja materia...

 26.04.05 - [update] Nowy artykuł



  Pomocy WML
[php]Sesje nie działają, ...
[actionscript 2.0] [flash...
Problem z talicami w php
[ocena] llll.pl darmowe a...
Kamera na stronie interne...
Kamera na stronie interne...
[xml] Jak wyciągnąć dane
Wizualizacja w JS - POMOC
Web Developer - stała / f...

... i wiele innych wątków na forum ›

Partnerzy
› allRSS.info - katalog zasobów RSS
› iloveflyer.org - webdesign
› webserv.pl - serverpack
› skryptoteka.pl - mnóstwo skryptów
› vel.pl - hosting
› TelePraca.net - pracuj swobodnie
› PHP Solutions - magazyn PHP
› HELION - wydawnictwo informatyczne

Ksišżka dnia

CityMag
Wpisz swój e-mail, aby zaprenumerować nasz Magazyn, który zawiera najnowsze informacje ze świata i najciekawsze teksty.
 

Szukasz czegoś?
Nasza wyszukiwarka znajdzie wszystko, czego szukasz.
 

Szukanie zawansowane


  Reklama
  Redakcja
  Hosting
  Kanał

© WebCity.pl Team
 
 
  Forum Forum
Kursy Kursy
Porady Porady
Recenzje Recenzje
Newsy Newsy
Katalog stron WWW Katalog
Skrypty PHP Skrypty
Download Oferty i praca
Artykuły:
 Teoria
 Praktyka
 Promocja
 Inne
 

 Webcity.pl |

Magic quotes
Autor: Zyx
Aby uchronić się przed atakami typu SQL Injection, wystarczy wstawiać do danych z formularzy, adresów URL i ciastek backslashe. PHP posiada mechanizmy zwane Magic Quotes ("magiczne cytaty"), które potrafią robić to automatycznie. Mogą być one jednak wyłączone i jeżeli nie uwzględnimy ich ustawień, narazimy się albo na niebezpieczeństwo, albo na to, że backslashy będzie za dużo i efekt nie będzie prezentował się okazale (szczególnie w artykułach).
   Magic quotes to w rzeczywistości dwie opcje:
  • magic_quotes_qpc - czy dodawać backslashe do danych z formularzy (POST), adresów URL (GET) i ciastek (COOKIE).
  • magic_quotes_runtime - czy dodawać backslashe do danych pobieranych z bazy.
    Drugą opcję można spokojnie wyłączyć funkcją set_magic_quotes_runtime(0). Pierwsza natomiast uruchamiana jest jeszcze przed startem skryptu i możemy co najwyżej zniwelować jej efekty. Zazwyczaj polecane jest pisanie skryptów pod włączone magic quotes qpc, gdyż nie trzeba wtedy wewnątrz nich umieszczać funkcji typu mysql_real_escape_string(), czy addslashes(). Gdyby jednak ten był wyłączony na serwerze, możemy zasymulować jego obecność:

    function add_gpc(&$value){
       if(is_array($value)){
          return array_map('add_gpc', $value);
       }else{
          return mysql_real_escape_string($value);
       }
    } // end add_gpc();
    if(!get_magic_quotes_gpc()){
       $_POST = array_map('add_gpc', $_POST);
       $_GET = array_map('add_gpc', $_GET);
       $_COOKIE = array_map('add_gpc', $_COOKIE);
    }

    Gdybyśmy pisali skrypt pod wyłączone magic quotes, musielibyśmy w tym przykładzie usunąć znak negacji sprzed get_magic_quotes_gpc() oraz zamienić mysql_real_escape_string na stripslashes.

  • Powrót