| 1. Általános webes sérülékenységek |
| Session Hijacking, Session Fixation, Cookie-sérülékenységek, Cross Site Scripting, Reflected Cross Site Scripting, Cross Site Request Forgey, Anti XSS Library; HTTP URL paraméterátadás: Primary key??; URL parsing; URL kanonizálás; JSON-sebezhetőségek, eval(); JavaScript, AJAX visszafejtése, obfuscation; XML-sebezhetőségek |
| 2. SQL Injection |
| Alaptámadások; Szerver felderítése, database fingerprinting; Stored SQL Injection; Blind SQL; Adatkinyerés SQL-hibaüzeneteken keresztül; Dinamikus SQL injection; Alacsony és magas jogosultsági szintű SQL Injection; Az SQL Injection elkerülésének lépései |
| 3. PHP alkalmazások építése során fellépő típushibák |
| Beépített függvények és globális változók hibás használatának elkerülése. Bemeneti adatok érvényességének ellenőrzése, speciális karakterek levédése. Látványos adatbázis programozási típushibák, és azt hogyan használják ki a hackerek. |
| 4. ASP.NET-sérülékenységek |
| ViewState kiolvasása, manipulálása; ASP.NET vs. saját autentikáció; Validátorok használata; HTML Encoding “elveszítése”; Hogyan ne írjunk SQL scriptet; Shared hosting problémák |
| 5. Hitelesítés - Állapotkezelés - Biztonság |
| Bejelentkezés leprogramozása. Jelszavak titkosítása. A munkamenetek (SESSION) és az állapotkezelés biztonságos programozása. A PHP weblap biztonságossá tétele: egyszerű PHP lapok típushibái, azok ellen történő támadások ismertetése. Alkalmazásaink befoltozása. |
| 6. Cikkek, bejegyzések, képek és fájlok feltöltése |
| Szöveg elmentése során védekezés a robotok ellen (SPAM): CAPTCHA. További biztonsági problémák, pl. külső parancsfájl befecskendezése: cross-site scripting (XSS). Könyvtárak tartalmának feldolgozása. Fájlkezelés során fellépő típushibák, és védekezés ellenük. AJAX-os hívások során fellépő támadási lehetőségek és azok elleni védekezés. |
| 7. Kódolás, hibakezelés |
| Tesztelés, hibakeresés (debugging). Kivételkezelés és hibakezelés, hibakezelő függvények létrehozása. Defenzív programozás. Műveletek logolása. Kódolási stílusok/konvenciók: self documenting code. Kód újratervezése (refactoring). Hatékony kód írása: profiling, kódhangolás. |
| 8. Overflow problémák |
| Stack based overflow; Heap based overflow; Format String exploit; Metasploit framework demó; /GS kapcsoló a Visual Studióban; Address Space Layout Randomization; Data Execution Prevention, a védelem kikapcsolása |
| 9. Fuzzing |
| A Unit tesztelésen túlmutató input tesztek szerepe, készítése; Debugger használata az exploit feltárásához; File fuzzing; Network Fuzzing (TCP, HTTP stb.); SQL fuzzing; XML Fuzzing; Smart fuzzerek |
| 10. .NET specifikus biztonsági problémák |
| A GC.Collect() közvetlen hívása; Equals implementációs problémák; toString() problémák tömbök esetén; Null érték ellenőrzése; Equals() / GetHashCode() definíció; Visszatérés érték ellenőrzése; ICloneable implementálás; Osztályok összehasonlítása; A [Serializable] attribútum használata; Null argumentum átadása equals() hívásban; Null dereference; Felszabadítatlan erőforrások; Jelszókezelés: üres, beégetett és null NET specifikus sérülékenységek tesztelése |
| 11. Biztonságos programozási eljárásrend |
| Defenzív programozás; Input validálás: code contract; A refaktoring szerepe a biztonságos programozásban; Unit tesztelés; Exception handling; Self Documenting Code |
| 12. Hibakezelési hibák |
| Üres catch blokk, áttekinthetlenül nagy catch; NullReferenceException; Input validálás; Logolás készítése; Unsafe reflection; Integer overflow; Unsafe natív hívások |
| 13. Biztonsági szolgáltatások hibái |
| Nem biztonságos véletlenszám-generálás; Privacy violation; Gyenge hashek, gyenge titkosítás. |