Hogyan állapítható meg, hogy a webhely átesett sql injekció - szól web design

Elemzés a naplók azt mutatta, hogy részt vett egy SQL injection kihasználni malware egyik SQL lekérdezések az oldalon.
Ezt súlyosbítja az a tény, hogy amíg a helyén volt, élén az emberek, akik valóban rá, és megtanulják, hogy a program. Sea-kód, ami szerintem nem is esik. És valahol ott volt egy lyuk.
Arról, hogy hogyan oldotta meg ezt a problémát, és lesz szó ebben a cikkben.
Kezdjük azzal, hogy egy kis oktatási program, amely SQL injection.
Mi SQL injection
Vegyünk egy pszeudo-kód
Van egy csekket, hogy intval vissza kell térnie egy egész szám, és ha id nem egy szám, a feltétel nem működik, és a kérés nem hajtható végre.
És ez igaz akkor működik, ha ilyen kérést
A feltétel nem teljesül: intval ( „új”) eredményül 0.
Úgy tűnik, hogy ez elég. De a kérdés az, hogy mi fog történni a következő kérés
Ezért a biztonsági rést. Ezen keresztül, akkor be bármilyen SQL lekérdezés. Akár törölni hírek
Módszerekkel foglalkozó SQL injekciós
A legbiztosabb módja, hogy megakadályozza az ilyen típusú támadásokat - szűrővizsgálat mindent. Ie mindazon változók kerülnek be a kódot áthaladt mysql_real_escape_string funkció
ilyen kérelem nem más, súlyosabb, mint a hibák a kérés nem fenyegeti. Ebben a konkrét példában azt látjuk, hogy az id is csak egész szám, így több helyes megoldás az alábbi kódot
Én nem ismétlik meg a kódot, hogy ellenőrizze, de ez nem is kómában esetben nem elhagyható. Egyszerűen kattintson a változó, mint az erő mysql szerver, hogy végre egy extra kérés.
Előbb vagy utóbb, egy ilyen módszer, illessze akkor a szokást. Az én szolgálatom csak egy ilyen hiba történt. A kód egyszerűen változtatható a GET kérelmet.
A kódjuk egyértelmű. Itt vagyunk a helyzet urai. Egy kisebb vagy nagyobb projekt, mely nagy számú harmadik fél könyvtárak és alkalmazások: CKEditor, CKFinder, jquery plugin. targoncák, csomagolók, daunloudery, statisztikai rendszer, phpmyadmin, stb
És ők is lyukak. Szerkesztése kezüket a lehetőséget, mondván, nem, és ha van valami nemkívánatos megtenni.
Sokkal könnyebb az erőforrások megőrzéséhez egészét. Például a kedvenc CMS Danneo. megvalósították a API szinten, és a GET vagy POST kérést, egyszerűen nem tud beszúrni kulcsszavak SQL lekérdezések.
Többek között ezt a kódot védi meg a más támadások, css, stb
Ennek eredményeképpen, ha a kérelem tiltott volt szó, a kód visszaáll 500 hiba, és dobni egy kivételt. Ez nem a legjobb megoldás. Ha minden kilépési kódot változók, és hogy minden rendben van, akkor nem lesz felesleges, hogy tájékoztassa a rendszergazda a befecskendezés a próbálkozásokat, és így a támadó például 404.
Például az osztályban add-on mysql. Én csak hozzá a módszer a menekülésre, és ha ez lesz az adatok, amelyek tiltott szavakat, levelet küld a rendszer adminisztrátori postafiók, akkor küld a felhasználó ip, a változót, amely védelmet kioldott.
ez a script időben figyelmezteti nekem akarja feltörni az életemet. Származó információk felhasználásával a levelet, akkor blokkolja a rosszindulatú vagy IP felfedezéséhez azokon a helyeken, ahol van egy támadást.
Ez valószínűleg minden olyan intézkedést, amely után a honlapon már nem lesz olyan könnyű feltörni.
Sok szerencsét kívánok ebben a veszélyes szakma)