E-mail kontrolü için Validate ve Sanitize filter kullanımı
input type="email" kontrolu
Kod şöyle
<?php
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "<b>$email</b> Geçerli e-posta";
} else{
echo "<b>$email</b> Geçersiz e-posta";
}
?>
FILTER_SANITIZE_EMAIL bu kodun php netteki açıklaması Harfler, rakamlar ve! # $% & '* + - =? ^ _ `{|} ~ @. [] Dışındaki tüm karakterleri kaldırır şeklinde
FILTER_VALIDATE_EMAIL bunun içinse mailin geçerli bir mail adresi olup olmadığını denetler diye açıklama yapılmış
1. Sorum (xss / injection vs adına )
!#$%&'*+-=?^_`{|}~@.[].
bu yukardaki karakterlere izin veriyor bu karkterlerden temizlenmesi gereken güvenlik tehditi oluşturabilecek varmıdır ?
örneğin
$email = filter_var($email, FILTER_SANITIZE_EMAIL); dedikten sonra birde
$filtrele = htmlspecialchars($email,ENT_QUOTES); gibi bişe yapmak gerekirmi _ ?
2. Sorum
FILTER_VALIDATE_EMAIL çalıştırmadan önce FILTER_SANITIZE_EMAIL çalıştırmak şöyle bi senaryoya yol açıyor örneğin
kayıt olmak isteyen kullanıcı [email protected] ile kaydolmak isterken yanlışlıkla bu adresini
tayfuneğ[email protected] şeklinde yazınca FILTER_SANITIZE_EMAIL ğ harfini kaldırıp mail adresini
[email protected] şekline getiriyor bunun sonucunuda tahmin edersiniz.
Neticede , FILTER_SANITIZE_EMAIL filtresini kullanmak doğru olmayacaktır dersem doğrumu söylemiş olurum ?
Cevap evet haklısın derseniz bu filtre hangi amaçla var ?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!