MySQL alapok

Tervezzünk!

Minden esetben először tervezzünk mielőtt elkezdenénk bármit is kódolni!

Erre már az elején álljunk rá, kisebb feladatoknál, hajlamosak vagyunk rögtön nekiesni a kódnak, pedig rengeteg időt és bosszúságot megspórolhatunk egy jól megtervezett alkalmazással, szerintem nincs is annál frusztrálóbb mint mikor valamit újra kell írni a rossz tervezés illetve a tervezés hiánya miatt!

A tervezés lépései:
  1. határozzuk meg hány táblára lesz szükségünk

  2. határozzuk meg a bennük levő mezőket

  3. határozzuk meg a mezők típusait

  4. hozzuk létre a kulcsokat
Fontos, hogy figyeljünk a redundanciára, törekedjünk legalább második normálformára!

Legyünk tisztában az adattípusokkal! Ne használjunk feleslegesen nagy méretű típusokat, például ha tudjuk hogy az egyik mezőnk maximum értéke 10 lehet akkor, ne használjunk hozzá INT típust!

Legyünk gyanakvóak!

Minden olyan esetben, ha a felhasználó közvetlenül az adatbázissal végezhet műveletet, például belépésnél megadja az e-mail címét és jelszavát SOHA ne használjuk közvetlenül azokat az adatokat amiket begépelt!

például:
$sql = mysqli_query($dbh, “SELECT email, jelszo FROM users WHERE email=’”.$_POST['email'].”‘ AND jelszo=’”.$_POST['jelszo'].”‘);
Védjük ki a támadásokat:
$email = mysqli_real_escape_string( trim( $_POST['email'] ) );

$sql = mysqli_query($dbh, "SELECT email, jelszo FROM users WHERE email='".$email."' AND jelszo='".$_POST['jelszo']."'");
Jelszavak: Ha van 1 táblánk amiben felhasználók adatait tároljuk sose tároljuk a konkrét jelszavát benne, használjunk titkosítást, Példa:
$jelszo = sha1( $_POST['jelszo'] ) ;
Regisztrácionál:
$jelszo = 
sha1( $_POST['jelszo'] ) ;

$sql = mysqli_query($dbh, "INSERT INTO users (email,jelszo) VALUES ('$email','$jelszo')");
Belépésnél:
$jelszo = sha1( $_POST['jelszo'] ) ;

$sql = mysqli_query($dbh, "SELECT * FROM users WHERE email='$email' AND jelszo='$jelszo'");

Így ha fel is törik az adatbázisunkat akkor is csak titkosított jelszavakat kapnak, ezzel egy lépéssel közelebb kerültünk a biztonságosan tárolt jelszavakhoz.

Ha ennél mélyebben érdekel a védekezés a támadások ellen, valamelyik internetes keresőben a következő kifejezésekre keress rá, hogy “cross site scripting” illetve “xss”.