Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] sql injections - czy to naprawdę takie skomplikowane
konrados
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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"


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:37