A kosaram
0
80%-ig
még
5 db

Biztonságos webalkalmazások PHP nyelven

Egyszerű és hatékony módszerek minden PHP-fejlesztőnek a kód biztonságossá tételére

Szerző
Fordító
Lektor

Kiadó: Kiskapu Kft.
Kiadás helye: Budapest
Kiadás éve:
Kötés típusa: Ragasztott papírkötés
Oldalszám: 297 oldal
Sorozatcím:
Kötetszám:
Nyelv: Magyar  
Méret: 23 cm x 19 cm
ISBN: 978-963-9637-67-2
Megjegyzés: Néhány fekete-fehér ábrával.
Értesítőt kérek a kiadóról

A beállítást mentettük,
naponta értesítjük a beérkező friss
kiadványokról
A beállítást mentettük,
naponta értesítjük a beérkező friss
kiadványokról

Fülszöveg

A PHP nyelvű webalkalmazások a hackerek egyik legfőbb célpontját jelentik. Miért? Mert tudják, hogy sok ilyen alkalmazást olyan programozók írnak, akik alig vagy egyáltalán nem rendelkeznek tapasztalattal a programok biztonságossá tételének terén. Mindazonáltal nem kell áldozatul esnünk nekik: a Biztonságos webalkalmazások PHP nyelven segít, hogy elsajátítsuk azokat a készségeket és módszereket, amelyek a sziklaszilárd PHP-kódok írásához, illetve a már meglevő PHP-programok megerősítéséhez szükségesek.
A webes fejlesztés, a biztonságos programok írása és az oktatás területén szerzett több mint tizenöt évnyi tapasztalatára építve Tricia és William Ballad megmutatja, hogy milyen biztonsági hiányosságok jelentkezhetnek a PHP-kódokban, és leírja a PHP-fejlesztők által leggyakrabban elkövetett hibákat. A szerzők konkrét, a gyakorlatban hasznosítható megoldásokat mutatnak be - olyan módszereket, amelyeket meglepően könnyű megérteni és használni, függetlenül attól, hogy milyen szintű... Tovább

Fülszöveg

A PHP nyelvű webalkalmazások a hackerek egyik legfőbb célpontját jelentik. Miért? Mert tudják, hogy sok ilyen alkalmazást olyan programozók írnak, akik alig vagy egyáltalán nem rendelkeznek tapasztalattal a programok biztonságossá tételének terén. Mindazonáltal nem kell áldozatul esnünk nekik: a Biztonságos webalkalmazások PHP nyelven segít, hogy elsajátítsuk azokat a készségeket és módszereket, amelyek a sziklaszilárd PHP-kódok írásához, illetve a már meglevő PHP-programok megerősítéséhez szükségesek.
A webes fejlesztés, a biztonságos programok írása és az oktatás területén szerzett több mint tizenöt évnyi tapasztalatára építve Tricia és William Ballad megmutatja, hogy milyen biztonsági hiányosságok jelentkezhetnek a PHP-kódokban, és leírja a PHP-fejlesztők által leggyakrabban elkövetett hibákat. A szerzők konkrét, a gyakorlatban hasznosítható megoldásokat mutatnak be - olyan módszereket, amelyeket meglepően könnyű megérteni és használni, függetlenül attól, hogy milyen szintű PHP-programozói tudással rendelkezünk. A Biztonságos webalkalmazások PHP nyelven áttekinti a PHP-kódok biztonságossá tételének legfontosabb szempontjait, a hibakezeléstől és az átmeneti tárak túlcsordulásától kezdve a bemenet érvényességének ellenőrzéséig és a fájlrendszerhez való hozzáférésig. A szerzők megcáfolják azokat a mítoszokat, amelyek visszatartják a PHP-programozókat attól, hogy megkíséreljék biztonságossá tenni a kódjaikat, és megtanítják, hogyan írhatunk anélkül biztonságosabb kódot, hogy feláldoznánk a szoftver teljesítményét vagy a saját hatékonyságunkat.
A könyv tartalmából:
-Kezdettől fogva biztonságos alkalmazások tervezése, valamint a nem újraírható alkalmazások biztonsági réseinek betömése
- Védekezés a munkamenetek eltérítése, rögzítése és megmérgezése ellen, aminek a PHP önmagában nem képes ellenállni
- A PHP-kódot futtató kiszolgálók biztonságossá tétele, konkrét útmutatóval az Apache, MySQL IIS/SQL Server és más kiszolgálókhoz
-Szigorú hitelesítés kikényszerítése és a titkosítás lehető legjobb kihasználása
- A veszélyes XSS-támadások megakadályozása
- Az alkalmazások biztonságának szisztematikus tesztelése, részletes útmutatóval a sebezhetőség teszteléséhez és a PHP nyelvű tesztautomatizálásához
- A már futtatott külső alkalmazások ismert gyenge pontjainak megerősítése Vissza

Tartalom

I. rész • A webfejlesztés veszélyes üzem
- belépés csak sisakban 1
1. fejezet • „A biztonság a kiszolgálóra tartozik" és egyéb mítoszok
Nézzük a valóságot! 4
„A biztonság a kiszolgálóra tartozik" 5
A hackerek nem biztonságos alkalmazásokon keresztül szerzik meg az irányítást 6
A programozók megerősíthetik az alkalmazásaikat 7
A homály biztonsága 8
A belső munkamenet-kezelés jelentős biztonságot nyújt 10
„Az én programom nem elég fontos ahhoz, hogy feltörjék" 10
A „barbárok a kapuknál" szindróma 11
Összefoglalás 12
II. rész - Tényleg akkora az a lyuk, hogy egy teherautó átférne rajta? 13
2. fejezet • Hibakezelés 15
A vendégkönyv-alkalmazás 16
A program áttekintése 16
A kiinduló kódváltozat 16
A felhasználók a legszörnyűbb dolgokat művelik 17
Vajon mi történik, ha ezt teszem? 17
Számítsunk a váratlanra! 21
Hibakezelő rendszer felépítése 22
A bemenet érvényességének ellenőrzése 22
A HTML-kódok eltávolítása a felhasználói bemenetből 22
Biztonságos HTML-elfogadás 23
Nehezítsük meg a levélszemét-küldözgetők életét! 24
Döntsük el, mit tegyünk a hibás adatokkal! 25
Tegyük a rendszer használatát hihetetlenül egyszerűvé! 26
Összefoglalás 28
3. fejezet - Rendszerhívások 29
Az execO, a systemO és a fordított perjelek veszélyes vizein 30
A rendszerfájlok használata a SUID biten és a sudo
parancson keresztül 31
A rendszer-erőforrások használata 31
A rendszerhívások biztonságossá tétele az escapeshellcmdO
és az escapeshellargO segítségevei 32
escapeshellcmdO 32
escapeshellargO 33
API létrehozása az összes rendszerhívás kezelésére 33
Miért nem elég, ha csak annyit teszünk, hogy levédjük a paramétereket? 34
A felhasználótól érkező bemenet érvényességének ellenőrzése 34
A vendégkönyv-alkalmazás befoltozása 35
A moveFile függvény 35
Az alkalmazásban szükséges változtatások 36
Összefoglalás 37
III. rész Mit számít a név?
Többet, mint gondolnánk 39
4. fejezet • Tártúlcsordulás és változótisztítás 41
Mi az az átmeneti tár, hogyan csordulhat túl, és miért fontos ez? 42
Átmeneti tárak, vermek, kupacok és memóriafoglalás 43
A tártúlcsordulás következményei 46
A memóriafoglalás és a PHP 46
Figyeljük a biztonsági figyelmeztetéseket! 49
A tártúlcsordulás megelőzése a változók megtisztításával 50
Alapszabály: minden adat bűnös, amíg ártatlannak nem bizonyul, 52
különösen ha az alkalmazáson kívülről érkezik 52
Honnan származnak az adatok? 52
Hogyan tisztíthatjuk meg az adatokat, hogy megelőzzük a tártúlcsordulást? 53
Az alkalmazás befoltozása 53
Ellenőrizzük, hogy a legfrissebb stabil változatok futnak-e! 54
A változók tisztaságának ellenőrzése 55
Összefoglalás 56
5. fejezet • A bemenet érvényességének ellenőrzése 57
Új szolgáltatás: lehetővé tesszük a felhasználóknak, hogy aláírják a vendégkönyvhöz fűzött megjegyzéseiket 58
A probléma: a felhasználók, akik többet adnak, mint amit kértünk 59
Levélszemét-küldözgetők 59
Befecskendezéses támadások 59
Feltételezések: tudjuk, hogyan néznek ki az adataink 60
Adatbázis-megszorítások 60
Logikai megszorítások 61
A megoldás: a bemenet érvényességének ellenőrzése szabályos kifejezések segítségével 61
Piszkos adatok 62
A szabályos kifejezések egyszeregye 63
Az a mohó, lusta... szabályos kifejezés! 67
Általánosan használt minták a bemenet érvényességének ellenőrzésére 69
Összefoglalás 71
6. fejezet • Hozzáférés a fájlrendszerhez: a fájlrendszerelérése a móka kedvéért
és haszonszerzés céljából 73
Fájlok megnyitása 74
A helyi fájlrendszer elérése 74
Távoli fájlrendszer elérése 75
A távoli fájlrendszerről érkező támadások megelőzése 76
Fájlok létrehozása és tárolása 77
A fájlfeltöltés engedélyezése 78
A fájlok biztonságos tárolása 79
A fájltulajdonságok biztonságos módosítása 80
Fájlengedélyek módosítása UNIX, Linux
és Mac OS X rendszeren 80
Fájlengedélyek módosítása Windowson 81
A fájlengedélyek módosítása a PHP-ben 90
Képfájlok feltöltésének engedélyezése az alkalmazásban 90
Az API módosítása 90
A fájlfeltöltő űrlap létrehozása 92
Összefoglalás 93
IV. rész - „Ugyan, haver, bízhatsz bennem!" 95
7. fejezet • Hitelesítés 97
Mit értünk a felhasználók hitelesítése alatt? 98
Felhasználónevek és jelszavak 99
Képfelismerés 101
Jogosultságok 102
A felhasználók hitelesítésének módjai 103
Könyvtár alapú hitelesítés 103
A felhasználók adatbázisa 115
A felhasználónevek és jelszavak tárolása 117
Titkosítás 117
A jelszavak erőssége 117
A sebezhetőség felmérése 118
Az alkalmazás befoltozása a felhasználók hitelesítésének lehetőségével 119
A felhasználók táblájának hozzáadása az adatbázishoz és az adatbázis biztonságának ellenőrzése 120
A hitelesítési felület létrehozása 120
Összefoglalás 122
8. fejezet • Titkosítás 123
Mi az a titkosítás? 124
A titkosítás típusának kiválasztása 126
Az algoritmus erőssége 126
Sebesség vagy biztonság? 127
Az adatok felhasználása 127
A jelszavak biztonsága 127
Az alkalmazás befoltozása a jelszavak titkosításához 128
A felhasználók táblájának módosítása 128
A titkosító és sózó függvények létrehozása 129
A jelszóellenőrző rendszer módosítása 129
Összefoglalás 130
9. fejezet - A munkamenetek biztonsága 131
Mi az a munkamenet-változó? 132
A munkamenetek ellen irányuló támadások főbb fajtái 132
Munkamenet-rögzítés 132
Munkamenet-eltérítés 134
Munkamenet-megmérgezés 136
Az alkalmazás befoltozása
a munkamenetek biztonságossá tételéhez 136
Összefoglalás 138
10. fejezet • Külső parancsfájl befecskendezése 139
MiazXSS? 140
Tükrözött XSS 140
Tárolt XSS 140
Az alkalmazás befoltozása
az XSS-támadások megakadályozásához 141
Összefoglalás 142
V. rész • Zárjuk be az ajtót éjszakára! 143
11. fejezet -Az Apache és a MySQL biztonságossá tétele 145
A programozási nyelvek, a webkiszolgálók és
az operációs rendszerek eredendően sebezhetők 146
UNIX, Linux vagy Mac OS X környezet biztosítása 147
Az operációs rendszer frissítése 147
Az Apache biztosítása 149
Az Apache frissítése és a legújabb stabil változat telepítése 149
Saját felhasználó és csoport hozzárendelése azApache-hoz 151
A változatszám és más érzékeny információk elrejtése ... 153
Az Apache korlátozása a saját könyvtárszerkezetére 153
A kifejezetten nem szükséges szolgáltatások letiltása 154
A ModSecurity telepítése és bekapcsolása 156
A MySQL biztosítása 160
A MySQL frissítése vagy a legújabb változat telepítése ... 160
A távelérés letiltása 163
A rendszergazda felhasználónevének és jelszavának megváltoztatása 164
Az alapértelmezett adatbázis-felhasználók törlése és új fiók létrehozása minden alkalmazás számára 165
A mintaadatbázisok törlése 166
Összefoglalás 166
12. fejezet - Az IIS és az SQL Server biztonságossá tétele 167
A Windows rendszerű kiszolgálói környezetek biztonságossá tétele 168
Az operációs rendszer frissítése 168
Az IIS biztonságossá tétele 174
A kiszolgáló lábnyomméretének csökkentése 174
A webgyökér biztosítása 75
Az SQL Server biztonságossá tétele 183
Frissítés a legújabb változatra 183
A Microsoft SQL Server biztonságossá tétele 194
Összefoglalás 197
13. fejezet - A PHP biztonságossá tétele a kiszolgálón 199
A PHP legfrissebb változatának használata 200
A Zend keretrendszer és a Zend optimalizáló 200
A PHP legfrissebb stabil változatának megkeresése 204
A Suhosin folt és bővítmény használata 205
A PHP és az Apache beépített biztonsági szolgáltatásainak használata 205
safe_mode 206
SuEXEC 207
A ModSecurity használata 208
A php.ini megerősítése 209
Összefoglalás 211
14. fejezet 9 Bevezetés az automatizált tesztelésbe 213
Miért beszélünk a tesztelésről egy biztonságról szóló könyvben? 214
A tesztelési keretrendszer 215
Teszttípusok 216
Egységtesztek 216
Rendszertesztek 217
Megbízható tesztadatok kiválasztása 218
Összefoglalás 218
15. fejezet - Bevezetés a támadási tesztek világába 219
Mik azok a támadási tesztek? 220
Véletlen tesztelés 221
A PowerFuzzer telepítése és beállítása 222
A PowerFuzzer használata 224
Tesztelési eszközkészletek 227
A CAL9000 beszerzése 227
A CAL9000 használata 228
Jogvédett tesztcsomagok 237
A jogvédett tesztcsomagok előnyei és hátrányai 238
Alkalmazás pásztázása jogvédett tesztcsomag
segítségével 238
Összefoglalás 245
VI. rész • A „Ne essünk áldozatul!" nem használható
biztonsági irányelv 247
16. fejezet • A terv: Biztonságos alkalmazás tervezése
már a kezdetektől 249
Mielőtt leülnénk a billentyűzethez 250
Áttekintő terv 250
A vendégkönyv-alkalmazás áttekintő terve 250
„Ez csak egy egyszerű alkalmazás - nincs időm a formális tervezési lépésekre!" 250
Folyamatábrák és szerepdiagramok 252
Adatfelépítés 255
Kezelőfüggvények 259
A hibapontok azonosítása 261
Bejelentkezés és kijelentkezés 261
Fájlfeltöltés 262
Felhasználói bemenet 262
Fájlrendszeri hozzáférés 263
Összefoglalás 263
17. fejezet • „B" terv: A rések betömése a kész alkalmazásban
A környezet kialakítása 266
Háromszintű gyártási folyamat alkalmazása 266
Változatkövetés 268
Ellenőrzőlista az alkalmazás megerősítéséhez 269
A kiszolgáló biztonságának ellenőrzése 269
A kód sebezhető pontjainak feltárása 269
A legnyilvánvalóbb hibák kijavítása 269
A kód felülvizsgáltatása külső személlyel 270
Összefoglalás 271
Utószó 273
A biztonság életstílus: út a jobb programozóvá váláshoz273
Kerüljük a szolgáltatások felduzzasztását! 274
írjunk öndokumentáló kódot! 275
Használjuk az adott feladathoz megfelelő eszközöket! 276
Vizsgáltassuk át a kódjainkat külső személlyel! 277
Összefoglalás 278
További források 279
PEAR 280
Könyvek 280
Webhelyek 281
Eszközök 282
Integrált fejlesztőkörnyezetek (IDE) és keretrendszerek . . 282
Eszközök támadási tesztekhez 282
Automatizált tesztelőeszközök 282
Tárgymutató 287
Megvásárolható példányok

Nincs megvásárolható példány
A könyv összes megrendelhető példánya elfogyott. Ha kívánja, előjegyezheti a könyvet, és amint a könyv egy újabb példánya elérhető lesz, értesítjük.

Előjegyzem
konyv