A mysqli_real_escape_string() függvény használata

A mysqli_real_escape_string() függvény használata

A php weboldalunk egyik sebezhetősége általában az SQL Injection, az adatbázis sérülékenységből adódó hozzáférés. Egy példa, hogy egy ilyen hiba kihasználásával adminisztrátori hozzáférést szereznek a weboldalhoz, majd ezen keresztül módosíthatják az oldalt.

Az egyik tipikus hiba a belépéskor, és általában mindenféle adat megadáskor a bemenő adat ellenőrzésének a hibája. Mint már a korábbi mysql_real_escape_string() függvénnyel foglalkozó bejegyzésben jeleztük, az adatbázis lekérdezéshez az összes változót ellenőrizzük, vagy a mysqli_real_escape_string függvénnyel szűrjük meg a felhasználás előtt.

Példa a mysqli_real_escape_string() függvény alkalmazására

<?php

 $con=mysqli_connect("localhost","dbuser","dbpassword","dbname");

// Kapcsolódás ellenőrzése
 if (mysqli_connect_errno()) {
 echo "Adatbázi kapcsolódási hiba: " . mysqli_connect_error();
 }

// bejövő változók biztonsági szűrése
 $fname = mysqli_real_escape_string($con, $_POST['fname']);
 $lname = mysqli_real_escape_string($con, $_POST['lname']);
 $passwd = mysqli_real_escape_string($con, $_POST['passwd']);

$sql="INSERT INTO Logins (FName, LName, Passwd) VALUES ('$fname', '$lname', '$passwd')";

if (!mysqli_query($con,$sql)) {
 die('Hiba: ' . mysqli_error($con));
 }
 echo "1 record beszúrva.";

mysqli_close($con);
 ?>

Mint a fenti példa mutatja, az adatbázis lekérdezésben használt összes változót a mysqli_real_escape_string() segítségével megtisztítjuk a biztonság érdekében.

Egy gyors és jó megoldás lehet, ha a php kódunkban az összes hasonló módon használt  változót vizsgálunk íly módon, tehát nem kell egyesével beépítenünk a függvényt. Például azt mondhatjuk, hogy az összes $_POST változót áttöltünk és egyben meg is escape-eljük a mysql_real_escape_string() paranccsal:

$postarray = array_map("mysql_real_escape_string", $_POST);

Természetesen ebben az esetben a továbbiakban nem a $_POST tömbön kereszül használjuk az adatokat, hanem a $postarray tömbben lévőket.

A mysqli_real_escape_string() függvény hatása

Normál körülmények között a függvény használatában nem ér minket hátrány, ha figyelembe vesszük, hogy ez a védelem, milyen szekvenciákat nem enged meg.

Fontos megjegyezni, hogy ez a függvény sem véd meg minket az SQL injection-től. Sok egyszerű támadást, hibát kerülhetünk el a segítségével, de nem minden hibás hozzáférést fog megakadályozni.

Hasonló IT bejegyzések, oldalak

  • mysql_real_escape_string szükségessége2013-04-23 mysql_real_escape_string szükségessége PHP mysql_real_escape_string szükségessége Amennyiben van egy PHP-vel készített weboldalunk, amely adatbázis segítségével, tárol adatokat, vagy épp abban keresünk adatokat, szinte […]
  • Linux.Darlloz php sérülékenység, HTTP POST támadás2013-11-29 Linux.Darlloz php sérülékenység, HTTP POST támadás Linux.Darlloz php sérülékenység, HTTP POST támadás A Linuxot futtató különféle eszközökre specializálódott férget fedeztek fel a Symantec szakértői. A kártevő a PC-ken kívül olyan […]
  • ISPConfig 3.0.5.3 Patch ERROR You have no permission for this domain.2014-03-02 ISPConfig 3.0.5.3 Patch ERROR You have no permission for this domain. ISPConfig 3.0.5.3 Patch ERROR You have no permission for this domain. Az ISPConfig stable (3.0.5.3) változat telepítésekor ütköztem az fenti problémába. Létrehozott ftp felhasználó […]
  • Megjelent az új OpenBSD 5.7 verzió2015-04-30 Megjelent az új OpenBSD 5.7 verzió Megjelent az új OpenBSD 5.7 verzió Stefan Sperling jelentette be az új OpenBSD kiadását. A 37. OpenBSD az OpenBSD 5.7 verzió már a 37. CD-ROM és a 38. FTP/HTTP kiadás. A BSD fejlesztői […]
  • Openssh figyelés több porton2015-01-05 Openssh figyelés több porton Openssh figyelés több porton Felmerülhet a szükség, hogy az sshd több porton is figyeljen. Ennek a beállítása az sshd_config fájlban található, ami linux rendszerenként eltérő helyen […]
  • Megjelent a Kali Linux 2.0 változat2015-08-12 Megjelent a Kali Linux 2.0 változat Megjelent a Kali Linux 2.0 változat Mati Aharoni jelentette a Kali Linux új 2.0 változatának a megjelenését. A Kali Linux a korábbi Ubuntu alapú BackTrack Linux Debianos követője. A […]

No Comments.

Leave a Reply