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"');
4
Bagus bahkan untuk bertanya. Saya tidak melihat potensi eksploitasi tetapi Anda dapat menolak beberapa alamat email yang valid dan menerima beberapa alamat yang tidak valid. Oh — dan Anda harus berlabuh di regex Anda .
—
Wildcard
@ Kartu Memori Memang kurangnya penahan membuat regexp tidak berguna sebagai tes keamanan!
—
Gilles 'SANGAT berhenti menjadi jahat'
Ini bisa menjadi alamat email yang valid
—
roaima
"the doctor"@gallifrey.com
. Perhatikan ruang yang dikutip dalam komponen nama pengguna.
pada titik apa Anda khawatir tentang eksploitasi? Baris subjek mengatakan 'bash', demikian juga kekhawatiran seputar ekspansi sambil mengirimkan $ email sebagai argumen (dikutip) ke script.sh, atau script.sh yang menangani nilai yang diteruskan, atau ketatnya (mungkin berbasis PHP) ) regex, atau ???
—
Jeff Schaller
Tidak jelas bagaimana regexp digunakan di dalam skrip Anda. Untuk analisis yang baik, berikan bagian yang relevan dari skrip Anda.
—
jofel