Dans ce cours, nous analysons les risques de la sérialisation binaire en Java : pourquoi la désérialisation depuis des sources non fiables est dangereuse (chaînes de « gadget chain », RCE), quels sont les risques des méthodes spéciales comme
readObject et
readResolve, et comment se protéger (liste blanche/whitelisting, abandon au profit de
JSON/
XML, bibliothèques plus sûres comme
Jackson). Nous examinerons en détail la compatibilité entre versions de classes et le rôle du champ
serialVersionUID, le comportement en cas de
InvalidClassException, les limites de
transient/
static, les performances, ainsi que les bonnes pratiques et erreurs typiques.