Point pertama dari OWASP Top 10 adalah Web Injection (A1). Web Injection adalah memasukkan kode tertentu pada web/aplikasi. Oleh aplikasi kode ini akan dijalankan sebagai command/query. Injection umumnya dilakukan pada form login atau form input. Selain itu ada juga yang dilakukan pada alamat web. Tujuan akhir serangan adalah mendapatkan akses ke database/ aplikasi tanpa perlu login. Penyerangan dapat dilakukan pada SQL, LDAP maupun pada OS. Ada banyak sekali teknik penyerangan yang digunakan mulai dari memasukan string SQL sampai penyerangan kompleks yang membutuhkan pemahaman coding dan database yang baik. Untuk mencari celah keamanan ini bisa digunakan Scanner, teknik fuzzing atau mempelajari kode web atau aplikasi. Resiko tertinggi dari serangan ini adalah pengambilalihan aplikasi atau web oleh penyerang.
Contoh serangan paling sederhana adalah dengan memasukkan kode ‘ or ‘1’=’1 pada form login. Langkah pencegahan yang dapat dilakukan adalah dengan memperhatikan interpreter yang digunakan. menggunakan variable bind, melakukan encoding semua input, menggunakan whitelist pada semua input, serta membatasi privilige (hak akses) ke database. OWASP membuat API yang bisa digunakan untuk mencegah serangan ini ESAPI.
Beberapa dokumen yang bisa digunakan untuk mempelajari tentang Injection ini bisa dilihat disini:
OWASP SQL Injection Prevention Cheat Sheet
OWASP Query Parameterization Cheat Sheet
OWASP Command Injection Article
OWASP XML eXternal Entity (XXE) Reference Article
ASVS: Output Encoding/Escaping Requirements (V6)
OWASP Testing Guide: Chapter on SQL Injection Testing