Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SQL Injection
tamin
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 6.09.2003

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


Chcialbym sie dowiedziec jak najlepiej sie zabezpieczyc przed 'atakami' SQL Injection.
mam powiedzmy takie zapytanie do bazy mysql:

[sql:1:d1814ccdee]
select * from news WHERE nr = '$show'
[/sql:1:d1814ccdee]
I czy to wystarcza. Bo spotykalem sie z:

Kod
$show=intval($show);

select * from news WHERE nr = '$show'


Dla mnie to jest niepotrzebne bo po 'testach' ktore przeprowadzilem moge powiedziec ze uzycje intval jest niepotrzebne bo w zapytaniu sql sa ' '.

Wiec potrzebne czy niepotrzebne, a jak np. $show to ma byc tekst a nie liczba to czy wystarcza '' czy trzeba jeszcze robic addslashes() itp.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adwol
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Wiec potrzebne czy niepotrzebne, a jak np. $show to ma byc tekst a nie liczba to czy wystarcza '' czy trzeba jeszcze robic addslashes() itp.

W przypadku MySQLa addslashes akurat jest w porządku, ale ogólnie to nie jest funkcja do tego. Korzystając z tej bazy lepiej uzywać funkcji mysql_escape_string gdyż służy ona właśnie do tych celów (mimo, iż robi praktycznie to samo co addslashes).
Poza tym w niektórych bazach (np. Sybase albo MSSQL) eskejpowanie polega na powieleniu eskejpowanego znaku, a nie poprzedzeniu go backslashem i wtedy addslashes nie tylko nie pomoże ale i zaszkodzi.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 21:39