Saya ingin meneruskan alamat email dari formulir web ke skrip bash. Saya menggunakan regex berikut:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
Apakah ini cukup? Atau bisakah seseorang menanamkan eksploitasi?
Script dipanggil dari PHP:
system('/usr/local/bin/script.sh "$email"');
shell
security
regular-expression
php
chris
sumber
sumber
"the doctor"@gallifrey.com
. Perhatikan ruang yang dikutip dalam komponen nama pengguna.Jawaban:
Anda dapat membersihkan dan memvalidasi alamat email dalam PHP, yang akan lebih cepat dan lebih aman daripada memanggil skrip shell. Memanggil skrip shell dengan data yang tidak bersih dari layanan web hanya akan menambah hal lain yang dapat dipecahkan.
Contoh di atas diadaptasi dari contoh di situs PHP.net .
sumber