Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niebiezpieczne zapytania sql
Forum PHP.pl > Forum > Bazy danych
daniel111
Podobono można do formularza, który zapisuje dane do bazy, wpisać zapytanie sql, które może wyrządzić jakieś szkody ...
Mam pytanie, jakiego typu są to zapytania i jak to działa - i także chce przetestować, czy u mnie da się tak zaszkodzić?
uboottd
np. dla zapytania logujacego:

[sql:1:3d5cbf9009]
SELECT uid
FROM users
WHERE user='$user' and pass = '$pass'
[/sql:1:3d5cbf9009]

podac wartosci:
user = root' --
pass = cokolwiek

wtedy po podstawieniu zmiennych zapytanie przyjmuje postac:
[sql:1:3d5cbf9009]
SELECT uid
FROM users
WHERE user='root' --' and pass = 'cokolwiek'
[/sql:1:3d5cbf9009]
... i poniewaz -- oznacza poczatek komentarza do konca lini loguje na root z dowolnym haslem.
daniel111
no niestety u mnie to nie działa - może gdzie zrobiłeś literówke (miślnikówke)?

ja mam taki sql:
SELECT name
FROM uzytkownicy
WHERE login = '$_POST[uzytkownik]' and pass = '$_POST[haslo]'

poza tym używam ssl ...

no ale u mnie nie nabiera się na taką sztuczkę ...
adwol
Cytat
no niestety u mnie to nie działa - może gdzie zrobiłeś literówke (miślnikówke)?

ja mam taki sql:
SELECT name
FROM uzytkownicy
WHERE login = '$_POST[uzytkownik]' and pass = '$_POST[haslo]'

Przykład jest dobry, ale widocznie masz u siebie włączony parametr konfiguracyjny magic_quotes_gpc, co powoduje, że każdy string z tablicy $_GET, $_POST i $_COOKIE jest, przed przekazaniem sterowania do Twojego kodu, automatycznie eskejpowany w celu zabezpieczenia się przed takimi sytuacjami..
Cytat
poza tym używam ssl ...

A to akurat nie ma znaczenia. winksmiley.jpg
Cytat
no ale u mnie nie nabiera się na taką sztuczkę ...

To bardzo dobrze. Tylko pogratulować. smile.gif
daniel111
OK, a czy są jakieś inne sposoby?
adwol
Cytat
OK, a czy są jakieś inne sposoby?

Czego? Zabezpieczania się przed wstawianiem potencjalnie niebezpiecznych znaków? Można samemu eskejpować zawartości zmiennych umieszczanych w zapytaniach funkcjami typu mysql_escape_string czy pg_escape_string.
daniel111
Chodziło mi o sposoby włamania jakąś instrukcją ...
adwol
Cytat
Chodziło mi o sposoby włamania jakąś instrukcją ...

Poszukaj na sieci pod kątem sql-injection. Napewno coś znajdziesz.
sivyer
Co do SQL-Injection, to znalazlem przed chwila dosc ciekawy artykul na ten temat: SQL Injection Attacks - Are You Safe?
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.