Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] sql injections - czy to naprawdę takie skomplikowane
Forum PHP.pl > Forum > Przedszkole
konrados
Chodzi mi oczywiście o to jak się zabezpieczyć przed mysql injections.

Właśnie jestem w połowie czytania
http://unixwiz.net/techtips/sql-injection.html

I już się zmęczyłem. Nie rozumiem, dlaczego po prostu przed wykonaniem kwerendy nie mogę wykorzystać:
mysql_escape_string() (info z http://forum.php.pl/index.php?showtopic=86...p;#entry435979)

a potem eee, no właśnie, co potem? Nie widzę funkcji mysql_unescape_string? A może html_entity_decode to zrobi?

No w skrócie - gdy dane user wpisuje, robię mysql_escape_string przed dodaniem do bazy danych. A potem jak to odwrócić? Oraz czy to wystarczy? Szczerze wierzę, że istnieją dwie proste proste funkcje kodującą i dekodująca, które zabezpieczą mnie przed sql injections, php injections i wszystkimi tymi hackowymi trickami których jeszcze nie znam smile.gif
Kicok
Nie ma czegoś takiego jak mysql_unescape_string bo taka funkcja jest zbędna. Jeśli wykonasz takie zapytanie:
  1. <?php
  2.  
  3. $zmienna = "Jakiś tekst z apo'strofem";
  4. $zmienna = mysql_escape_string( $zmienna ); //Jakiś tekst z apo'strofem
  5.  
  6. $sql = "INSERT INTO tabela ( kolumna ) VALUES ( '" . $zmienna . "' )"; // INSERT INTO tabela ( kolumna ) VALUES ( 'Jakiś tekst z apo'strofem' )
  7. mysql_query( $sql );
  8.  
  9. ?>

To do bazy danych trafi: Jakiś tekst z apo'strofem.


Znak ucieczki: "\", informuje tylko bazę danych, że znajdujący się za nim apostrof ma być traktowany jako apostrof, a nie jak "koniec danych tekstowych"
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.