Általános védelmi ajánlások (mysql és sql webes felületen)
Általános védelmi irányelvek (MySQL és az SQL Web-interfész)
Bárki, aki használja a MySQL (vagy más SQL szerver) a számítógép csatlakozik az internethez, olvassa el ezt a tanácsot, hogy elkerüljék a leggyakoribb biztonsági kérdéseket.
Ugyanakkor hangsúlyoznunk kell, hogy milyen fontos a teljes szerver védelem (nem csak a MySQL szerver) minden fajtája ellen alkalmazható támadásokat. Ebben a cikkben, sajnos, nem lehet, hogy minden szempontból a biztonsági problémák, de a legfontosabb kérdések megfelelő.
MySQL használ alapuló védelem hozzáférés-vezérlési listák (ACL) minden kapcsolatot, lekérdezések és egyéb műveletek, hogy a felhasználó megkísérelheti elvégezni. Van még néhány támogatja az SSL-titkosított kapcsolatok között MySQL kliensek és szerverek. Sok a fogalmak tárgyalt ebben a cikkben nem specifikusak a MySQL és lehet alkalmazni az összes alkalmazást.
Amikor fut a MySQL, próbálja az alábbiakat:
Ne adj senkinek kapcsolat (kivéve MySQL Administrator) a felhasználói tábla a MySQL adatbázis. Titkosított jelszó - valódi jelszót MySQL. Ha tudja a jelszót a táblázatban felsorolt USER a felhasználó számára, akkor könnyen jelentkezzen be a felhasználó, ha rendelkezik a felsorolt számítógépek számlájára.
Ismerje meg a MySQL hozzáférési jogosultsággal rendszer. GRANT és REVOKE parancsokkal való hozzáférés vezérlésére MySQL. Ne adjon több jogosultsággal, mint amennyi szükséges. Soha megadja jogosultságokat minden számítógép a hálózaton. vezérlés ellenőrzi csapatok:
2. A parancs SHOW támogatások és ellenőrizze. hogy ki férhet hozzá, hogy mit. Távolítsuk el a felesleges jogosultságokat a REVOKE parancsot.
Ne tárolja a jelszavakat egyszerű szöveges az adatbázisban. Amikor a számítógép veszélybe kerül, a betolakodó kap egy teljes listát
jelszavak és használja őket. Ehelyett használja az MD5 algoritmus, vagy bármely más alapján egyirányú hash függvény.
Ne válasszon jelszót szótárakból. Vannak speciális programok értük. Még jelszavak, mint „xfish98” nagyon rossz. Sokkal jobb - „” duag98 „amely ugyanazt a szót” hal »de gépelt egy billentyűt balra a billentyűzeten Egy másik módszer az, hogy egy jelszót, mint a« UMBBR »amely az első szót a mondat:« Mária. ez volt egy nagy gyerek. „az ilyen jelszavakat könnyű megjegyezni és begépelni, de nehéz megtalálni a támadó.
Használjon tűzfalat. Ez megvéd legalább 50% kihasználható sebezhetőséget semmilyen szoftvert. MySQL portot 3306 alapértelmezés szerint. Ez a port hozzáférhetőnek kell lennie csak megbízható házigazdák. A legegyszerűbb módja annak, hogy ellenőrizze-e vagy sem a MySQL port nyitva van, hogy próbálja ki a következő parancsot egy távoli gépen, ahol server_host - hostname a MySQL szerver: telnet server_host 3306
Ne bízz olyan adatot a felhasználó által megadott. Ezek trükk a kódot beírja speciális karaktereket egy webes formában vagy egy URL-t. Győződjön meg arról, hogy az alkalmazás továbbra is biztonságos, ha a felhasználó belép, valami ilyesmit: DROP DATABASE mysql;. Ez - egy példa egy kritikus, de sok a szivárgás védelem és adatvesztés fordulhat elő, mert a hackerek hasonló módszerekkel. Továbbá ne feledjük, hogy ellenőrizze a numerikus adatokat. Gyakori hiba, hogy megvédje csak szálakat. Néha az emberek azt hiszik, hogy ha egy adatbázis csak a nyilvánosan rendelkezésre álló adatok alapján nem kell védeni. Ez rossz. Legalábbis DoS támadást lehet tenni ezek ellen adatbázisokban. A legegyszerűbb módja, hogy megvédje az ilyen típusú támadásokat használata aposztróf bárhol számkonstanst:
SELECT * FROM tábla WHERE ID = '234'. MySQL automatikusan átalakítja ezt a fonalat, hogy egy számot, és eltávolítja az összes nem numerikus karaktereket egy lekérdezést. ellenőrizze:
Minden webes alkalmazások:
1. Próbálja meg „” „” „” a webes űrlapokat. Ha Önnél bármilyen fajta MySQL hiba, haladéktalanul vizsgálja meg a problémát.
2. Kísérlet változtatni az URL-t, hozzátéve, 22% ( '' '), 23% (' # '), 27%'”.
3. próbál változtatni a típusú adatokat a dinamikus URL numerikus karakterekből látható karaktereket az előző példákban. Az alkalmazás biztonságosnak kell lenniük, és ez ellen a hasonló támadásokat.
4. Próbálj meg karaktereket, szóköz és speciális szimbólumok a számok helyett a numerikus mezőket. Az alkalmazás előtt távolítsa el azokat az elfogadása MySQL, vagy az alkalmazás hibát generál.
5. Ellenőrizze a méret adatokat, mielőtt azok a MySQL.
6. Az alkalmazás csatlakoznia kell az adatbázisban a felhasználó eltérő használata adminisztratív célokra. Ne hagyja, hogy az alkalmazás több jogot, mint azok, amelyek valóban szüksége van.
Ellenőrizze a funkció addslashes (). Miután a PHP 4.0.3, mysql_escape_string () funkció áll rendelkezésre, amelynek alapja a funkciója azonos nevét a MySQL C API.
Belépés MySQL C API:
Ellenőrizze az API kérés mysql_escape_string ().
Ellenőrizze átmenetek és idézetek módosítók az áramlás kéri.
Belépés Perl DBI:
Nézze meg az idézet () metódus vagy egy szerkezeti nulla (helyőrzők).
Felhasználók Java JDBC:
Használjon PreparedStatement objektumot és helyőrzők.
Ne továbbítja titkosított adatok az interneten keresztül. Ez az adat bárki számára, aki az idő és a képesség, hogy elfogják, és használja a saját céljaikra. Ehelyett használja titkosított protokollt SSL vagy SSH típusát. MySQL támogatja a belső SSL-verziója 3.23.9. SSH használható a titkosított alagutat.
Megtanulják, hogyan kell használni a tcpdump. A legtöbb esetben, akkor ellenőrizze, hogy a MySQL adatfolyamok titkosítatlan valóban használja a következő parancsot:
shell> tcpdump -l -i eth0 -w - src vagy dst-port 3306 | húrok