Kode di atas memastikan hanya field tertentu (Billing Country, Card ZIP, dan Card CVC) yang ada di formulir, tapi tidak memeriksa apakah nilai di dalam input field sudah aman. Hal ini membuka peluang terjadinya PHP Object Injection, di mana penyerang bisa menyisipkan data berbahaya ke dalam input.
Jika sistem memproses data tersebut tanpa pengecekan tambahan, penyerang bisa mendapatkan akses ke bagian sensitif dari sistem atau menjalankan aksi berbahaya, seperti mencuri data atau merusak sistem.
Patch (perbaikan) menggunakan WordPress core API
Kalau menggunakan platform CMS WordPress, menutup celah keamanan kode PHP dari serangan PHP Object Injection seperti ini sebenarnya cukup mudah.
WordPress core sudah menyediakan fungsi is_serialized() (referensi). Fungsi ini merupakan pengaman untuk mendeteksi dan menandai data serial. Jika data serial ditemukan, ini menandakan bahwa validasi atau pemrosesan tambahan diperlukan untuk mencegah potensi risiko keamanan.
Implementasinya seperti ini:
P.S.:
Snippet di atas didapat dari riset software plugin WordPress: GiveWP