Zabezpieczanie GET
Dzisiaj chciałbym pokazać jak łatwo można zabezpieczyć wejście GET przed nieporządanymi edycjami. Załóżmy, że mamy prosty skrypt pobierający z bazy login użytkownika dla podanego id. Wszelkie informacje będą zawarte w komentarzu w kodzie:
Listing
<?php
$id = $_GET['id']; //Pobranie zmiennej id z paska adresu np. index.php?id=5
if (!preg_match("/^\d+$/", $id)) { //Dzięki wyrażeniom regularnym możemy zezwolić na przetważanie tylko zmiennej która jest liczba.
echo 'Blad! Nieprawidlowy parametr dla ?id'; //Obsługa błędu, jezeli wprowadzony ciag w adresie nie jest liczbą.
}
else //Jeżeli $_GET['id'] jest liczbą wykonujemy skrypt właściwy.
{
define('DB_HOST','localhost'); //Host bazy mysql
define('DB_USER','root'); //Nazwa użytkownika
define('DB_PASS','haslo'); //Haslo dla podanego użytkownika
define('DB_DB','baza'); // Nazwa bazy
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
or die('Nie udało połączyc się z bazą danych. '.mysql_error());
mysql_select_db(DB_DB,$connect)
$wynik = mysql_query("SELECT login FROM users WHERE id = '$id'")
or die('Błąd zapytania'); //Zapytanie do bazy o login.
$r = mysql_fetch_assoc($wynik); //Ustalamy zmienną "r"
echo 'Login to: '.$r['login']; // Poieramy i wyświetlamy wartość login z bazy według wcześniej ustalonego wzorca
?>
$id = $_GET['id']; //Pobranie zmiennej id z paska adresu np. index.php?id=5
if (!preg_match("/^\d+$/", $id)) { //Dzięki wyrażeniom regularnym możemy zezwolić na przetważanie tylko zmiennej która jest liczba.
echo 'Blad! Nieprawidlowy parametr dla ?id'; //Obsługa błędu, jezeli wprowadzony ciag w adresie nie jest liczbą.
}
else //Jeżeli $_GET['id'] jest liczbą wykonujemy skrypt właściwy.
{
define('DB_HOST','localhost'); //Host bazy mysql
define('DB_USER','root'); //Nazwa użytkownika
define('DB_PASS','haslo'); //Haslo dla podanego użytkownika
define('DB_DB','baza'); // Nazwa bazy
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
or die('Nie udało połączyc się z bazą danych. '.mysql_error());
mysql_select_db(DB_DB,$connect)
$wynik = mysql_query("SELECT login FROM users WHERE id = '$id'")
or die('Błąd zapytania'); //Zapytanie do bazy o login.
$r = mysql_fetch_assoc($wynik); //Ustalamy zmienną "r"
echo 'Login to: '.$r['login']; // Poieramy i wyświetlamy wartość login z bazy według wcześniej ustalonego wzorca
?>
Dodano przez: eider Ranga: 0 Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno