< Adatbázis-kezelés

Adatbázis-biztonság

Szerző: Sallai András

Copyright © 2015, Sallai András

Szerkesztve: 2015, 2019

Licenc: CC BY-SA 4.0

Web: https://szit.hu

Az adatbázis biztonságának rétegei

hozzáférés vezérlés

auditálás

azonosítás

titkosítás

integritás ellenőrzése

mentés és visszaállítás

az alkalmazás biztonsága

Hozzáférés vezérlés

Jogok meghatározása

GRANT jogok
ON objektum_neve
TO szereplo_neve;

Sorszintű biztonság

CREATE VIEW nézet_neve AS
SELECT *
FROM tábla_neve
WHERE mező_neve = user;

Adatbázis elérés

Az adatbázis elérés szabályozása a hálózaton.

adatbázis beállítások - my.ini vagy my.cnf

tűzfalbeállítások - Netfilter, Mysql-proxy

Auditálás

Naplózás

Minden tevékenységet naplózunk és rendszeresen ellenőrzünk.

kilépés/belépés

változtatások

#general_log_file = /var/log/mysql/mysql.log #general_log = 1 expire_logs_days = 10

/var/log/mysql/mysql.log

PHPMyAdmin

Kiszolgáló: localhost → Állapot fül → Felügyelet gomb (stb)

Azonosítás

felhasználónév	jelszó

fontos: jelszó erősség

követelmény (tartalmazzon):

szám

kis- és nagybetű

nem betű és nem szám karakter

legalább 10 karakter hosszú

Hozzáférés:

A programnak külön felhasználója legyen, amely MySQL felhasználó.

A felhasználóknak külön hozzáférés, amely NEM MySQL felhasználó.

A programnak csak usage hozzáférést adunk.

Integritás, Titkosítás

Adatintegritás a következő algoritmusok biztosítják:

AES

RC4

3DES

MD5

SHA1

SHA512

SSL

TLS

Mentés és visszaállítás

Mentés:

mysqldump -u root -p[titok] [adatbazinev] > mentesfajnev.sql

mysqldump --all-databases > mysql-mentes.sql

PHPMyAdmin

Visszaállítás:

mysql -u root -p[titok] [adatbazisnev] < mentesfajlnev.sql

PHPMyAdmin

Mentés szerveren:

rsync

A mentés lehet:

teljes mentés

inkrementális mentés

A crontab rendszerrel időzítjük.

Alkalmazások biztonsága

SQL injekció

Ellenőrizzük a bekért adatmezőket, mielőtt adatbázisban rögzítjük azokat.

Egy az alábbihoz hasonló bevitellel, a jelszavak megkerülhetők. Ezt nevezzük SQL injekciónak:

a" or 1 = 1 "

Ennek megelőzésére egyik lehetőség a mysqli használata esetén a mysqli_real_escape_string() függvény használata:

$user = mysqli_real_escape_string($con, $data['user']);