Java: hatékony és biztonságos szoftverfejlesztés

Szoftverfejlesztés | Java
Nehézség: Haladó
Tanfolyam hossza: 3 nap

Gyakori programozói hibák, gyakori támadási módok, kriptográfiai API

CÉLOK
A tanfolyam anyagában olyan kiemelt területeket gyűjtöttünk össze, amelyek ismerete elengedhetetlen a hatékony és biztonságos Java-alkalmazások készítéséhez. Alapvető, mindennapi témákat is vizsgálunk, mint pl. a Stringek hatékony feldolgozása vagy a Collection API osztályainak hatékony használata, de haladóbb témák is terítékre kerülnek, mint pl. haladó szálkezelési megoldások vagy webes környezetben előforduló biztonsági és hatékonysági szempontok. A Java könyvtárban elérhető kriptográfiai és biztonsági osztályok használatát ritkán érintik a Java kurzusok, pedig hatékony és jól használható eszközöket találunk itt. A tanfolyam során ezeket is megismerjük.

TEMATIKA

• Mindennapi hatékonysági problémák
– Egyszerű típusok és wrapper objektumok, boxing, autoboxing
– Stringek hatékony kezelése, StringBuilder
– String a switch-ben
– Enumok haladó használata
– Singleton minta enummal
– Túlfutó switch címkék
– A rekurzió
– Generikus kollekciók hatékony alkalmazása
– Java 8 Streamek használata
– Aszinkron I/O

• Mindennapi biztonsági problémák
– Assertions
– Biztonságos kivételkezelés
– Return a catch-finally blokkokban
– Runtime hibák javítása
– Biztonságos erőforrás-kezelés
– Random és SecureRandom
– Immutabilitás, funkcionális programozás
– Artimetikai túlcsordulás
– Deserialization
– Cloning
– Final osztályok
– Az @Override annotáció
– Információszivárgás kivételekkel
– Kollekciók, objektumok visszatérési értékként
– Belső osztályok használata
– Jelszó Stringben
– A SecurityManager

• Párhuzamosítás hatékonyan és biztonságosan
– A synchronized helyes használata
– Thread poolok használata
– Konkurens kollekciók
– A fork-join megközelítés
– Aszinkron API-k készítése a CompletableFuture osztállyal
– Atomi műveletek, mint a szinkronizáció alternatívája

• A Java kriptográfiai eszközei
– Confidentiality, Integrity és Non-Repudiation
– A JCA és a JCE
– Nem szándékos adattorzulás védelme, Cyclic Redundancy Check (CRC)
– Szándékos adatmanipuláció védelme, Message Authentication Code (MAC)
– Letagadhatatlanság, Public Key Encryption
– Szimmetrikus kriptográfia
– Aszimmetrikus kriptográfia

• Gyakori biztonsági problémák
– Hamis biztonságérzet
– TLS és SSL kommunikáció
– Erőforrás-védelem konfigurációja
– Jelszavak biztonságos kezelése, hashing, salting
– Injection típusú támadások
– SQL injection JDBC és JPA alatt
– Cross-site scripting (XSS)
– Cross-site request forgery (CSRF)