oktatas:adatbazis-kezeles:adatbazis-biztonsag
Tartalomjegyzék
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
- /etc/mysql/my.cnf
#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']);
oktatas/adatbazis-kezeles/adatbazis-biztonsag.txt · Utolsó módosítás: 2023/08/21 10:26 szerkesztette: admin