Biztonságos webalkalmazások PHP nyelven
Szerzők:
Tricia Ballad, William Ballad
Kiadó:
Kiskapu
Kiadás éve:
2010
ISBN:
9789639637672
Oldalak száma:
298
Értékelés:
6
Linkek
Nagyon megörültem, mikor a Corvinus Egyetem könyvtárában az új szerzemények polcáról rám kacsintott a Biztonságos webalkalmazások PHP nyelven című könyv. Régóta kerestem irodalmat ebben a témában, több-kevesebb sikerrel. Hirtelen örömömben gyorsan meg is vásároltam a könyvet. Remélem, a cikk végére az olvasónak is kiderül, hogy megérte-e vagy sem.
Előzetesen megjegyzem, hogy közel 10 éve foglalkozom PHP webalkalmazásokkal és közben tapasztaltam hideget-meleget. A könyv kézbevétele előtt úgy gondoltam, hogy na végre, egy olyan könyv, ami majd olyan titkos trükköket fog nekem mutatni, amelyek a nyilvánvaló biztonságtechnikai elveken messze túlmutatnak és alkalmazásukkal támadhatatlan tuti-biztos, ultra-biztonságos kódokat fogok tudni írni. Akinek hasonló naiv ábrándjai vannak, megnyugtatom, ebben az esetben sincs új a nap alatt.
A könyv relatíve korrektül összefoglalja azokat az általános biztonságtechnikai irányelveket és hasznos tudnivalókat, amiket nagy valószínűséggel minden középhaladó PHP fejlesztő már észben tart.
Lefedett témakörök a teljesség igénye nélkül:
- Túlcsordulás védelem
- Változótisztítás, validálás, bemenetellenőrzés
- Hitelesítés és titkosítás
- Munkamenet eltérítés és XSS
- A PHP futási környezet, Apache és MySQL valamint IIS és MS SQL biztonságossá tétele
- Egység és rendszertesztek
- Automatizált behatolás és támadási tesztek
Valószínűleg túl sokat vártam a könyvtől, ezért nem lenne korrekt, ha emiatt értékelném alul. Minden kétséget kizáróan rendkívül hasznos olvasmány kezdő és középhaladó PHP fejlesztők számára. Gyakorlatilag minden olyan témát tárgyal, amelyekkel minden valamire való fejlesztőnek tisztában kell lenni. Sok ponton nem értettem egyet a szerzővel, véleményem szerint nem minden esetben az optimális vagy legcélszerűbb kódolástechnikai tanácsokat adja, de természetesen nem félrevezető, senki nem fog bakot lőni, ha betéve követi a Tricia és William Ballad tanácsait. Annyit azért hozzáfűznék jó tanácsként, hogy inkább a koncepciót és elméletet lássuk a sorok között, mintsem a konkrét példát!
Összefoglalva számomra (haladó fejlesztőnek tartom magam) újdonságot nem mutatott a könyv, de vitathatatlan, hogy a téma összefoglalására tökéletesen alkalmas. Aki nem foglalkozott még webalkalmazások biztonságával, ez a könyv egy remek kiindulópont.
■
A túlcsordulás védelemről
(google nem talál semmit php5 túlcsordulással kapcsolatban)
túlcsordulás
Ebben a fejezetben lényegében a PHP metódusok működését, a végrehajtás szintjeit taglalja (oprendszer, C alapfv-ek, php core fv-ek stb.) és azt, hogy mitől jön létre a túlcsordulás, mik a követezményei és a nyilvánvaló problémákon túl miért rossz ez. Konkrét példának a htmlspecialchars() fv-t hozza, ahol korábban (még a hardened php project patch-e előtt) megfelelő méretű inputtal ki lehetett akasztani a parsert. A fejezet mondanivalója, hogy ellenőrizzünk minden bemenetet megfelelően és figyeljük a biztonsági fórumokat és adott esetben telepítsük a friss verziókat vagy patch-eket. Ilyen fórumok:
http://www.securityfocus.com/
http://www.cert.org/
http://hardened-php.net
a hardened-php helyett,
a kerdezonek: az ilyen jellegu tamadasok nem a php alkalmazas, hanem az azt futtato zend engine ellen iranyulnak.
ezek nagyresze ellen vedelmet nyujt a suhosin nevu kiegeszites, ami egy patch, es egy zend extension formajaban elerheto.
ezek nem reszei a hivatalos kiadasnak, de a disztributorok a patchet tobbnyire alapbol hozzaforgatjak a szallitott binarisokhoz, az extensiont pedig elerhetove teszik a disztro tarolojabol.
manapsag eleg nagy csend volt ezen a teren, de nem is olyan reg a "the Month of PHP Security" kapcsan rengeteg(bar viszonylag keves kulonbozo hibat kihasznalo) ilyen sebezhetosegre derult feny:
http://www.php-security.org/category/vulnerabilities/index.html
itt lehet olvasni a hiba montos mukodeserol, de gyakorlatilag arrol van szo, hogy bizonyos fuggvenyek C implementacioja miatt lehetseges tetszoleges memoria olvasasa/irasa, ezaltal pl. megkerulhetoek bizonyos megkotesek (open_basedir, etc.), extrem esetben tetszoleges kodfuttatasra nyilik lehetoseg.
ezt a php fejlesztoi tobbnyire nem tekintik kritikus hibanak, mivel szerintuk ha valaki tetszoleges php kodot tud futtatni az adott gepen, akkor az mar regen rosz.
http://www.php-security.org/2010/06/25/mops-2010-061-php-splobjectstorage-deserialization-use-after-free-vulnerability/index.html
az itt leirt modon viszont tavolrol lehetett tetszoleges kodot futtatni egy suhosin nelkuli TikiWiki telepitesen, szoval en szemely szerint senkinek sem ajanlanam a pucer php hasznalatat produkcios kornyezetben.
Tyrael
Azért vannak itt
Kösz az infot, még nem hallottam ilyesmiről, naívan azt hittem, hogy php-ban nincsenek ilyen gondok.
igen
Szerintetek hasznos lenne mondjuk itt a WL-on nyitni egy biztonságtechnikai topic-ot? Ahová ki-ki feltöltheti tapasztalatait vagy, hogy éppen milyen "betyárságot" talált szerte a neten.
Hmm?
Hajrá
igen, az egy mokas problema
az a baj, hogy egyelore a php-security temakor elegge egy emberes mufaj (Stefan Esser), a php security groupban is csak a "sima" core fejlesztok vannak benne, nincs igazabol security obsessed ember a csapatban, miota Stefan kilepett, es ez sajna meg is latszik a hozzaallason (nincs hiba, ha megis van hiba, akkor jelentektelen, ha megis erolteted, akkor meg meg te vagy a szemetlada).
valamint az sem tesz tul jol az egyuttmukodesnek, hogy Stefan egy hisztis furdoskurva, es mostanaban inkabb az anyagi megterulest nezi a hibak bejelentese kapcsan, nem pedig azt, hogy minel elobb ertesitse a fejlesztoket, hogy javitva legyen a hiba.
Tyrael
Nem neked szólt
Semmiféleképpen sem gondolom, hogy egy könyvnek – ennek a könyvnek – tárgya kéne legyen „titkos trükkök” felfedése. A biztonsági sérülések túlnyomó része az ellenőrízetlen bemenetből származik. A könyv várhatóan nem neked szól, célközönsége azon PHP fejlesztők tábora, akik már túl vannak néhány nagyobb projekten, megtanulták már, hogy bizonyos támadások ellen mire kell felkészülni, de szeretnének egy átfogó képet kapni a további potenciálokról és azok elleni védekezési módszerekről. Ha ennek a kivánalomnak a könyv eleget tesz, akkor úgy gondolom – nem olvastam a művet – a könyv elérte célját, ez egy jó könyv, és ilyettébb a reáadott 6-os minősítést keveslem.
lehet, mégis elfogult maradtam
Miért nem tízet?
Visszatérve első megjegyzésedre - és hogy cáfoljam magam - nem bántam meg, hogy megvásároltam a könyvet. Egyrészt így nem ülök rajta, más is kiveheti a könyvtárból (egy példány van). :) Másrészt, ahogy már azt tisztáztuk, biztonság technikával ismerkedők számára jó kis könyv ez és majd jó lesz kölcsönadni kollégának, ismerősnek, érdeklődőnek stb.
Tehát tisztább fejjel belegondolva, megérdemel egy kövér 8-ast.
Döfi
Elkezdtem
- Az írók keverik a PHP és PERL nyelveket,
- a reguláris kifejezések átgondolatlanok, és
- a forráskódok tele vannak hibával - ami lehet hogy a
A függvényeket megítélésem szerint következetlenül használja. Például az escapeshellarg függvény szerintem nem egy teljes shell utasítás levédésére való, hanem a shell utasítás paramétereinek egyenként történő levédésére, amelyeket behelyettesítünk a shell utasításba. Ennek ellenére a példában először létrehozza a teljes utasítást paraméterekkel, és a teljes sorra hívja meg a függvényt, így kapunk egy shell utasítást idézőjelek között.fordításból eredő hiba.
Mindezek ellenére idáig tetszik, és folytatom tovább az olvasást.
Köszönöm az ajánlást.
Néhány furcsaság
Az SQL befecsekendezest is aposztrofok nelkul magyarazzak. Ez igy vagy nem mukodik, vagy egyebkent is elvetemult az az SQL motor, amely elfogadja a stringet aposztrofok nelkul is.
Aztan azt sem ertem, hogy a rendszerhivasok kockazatat eppen a fajlmasolas parancsaval illusztraljak. Mert nem nagyon hinnem, hogy elvetemult modon meg kellene hivni az operacios rendszer mv parancsat, mikor a php is tud ilyet? Vagy van erre valamilyen komoly ok?
Most nem tudom, hogy a 40 oldal utan olvassam-e meg a konyvet... Ti hogy vagytok vele?
"Annyit azért hozzáfűznék jó
De ez igazából bármiben így van amit olvasol. Elolvasod, végiggondolod mit ír, utánajársz és ha egyértelmű sületlenség vagy pontatlanság van benne akkor kijavítod a hibákat, ennyi.
Én minden könyvet csak ugródeszkának tekintek, hogy jobban képben legyek a témában, nem pedig abból akarom A-tól Z-ig megtanulni hogy miről is van szó.