IMO. jest to przeciwko SQL Incjetion i temu podobnych.
Choć, w sumie to nie widzę w tej sytuacji sensu. Zapewne miało to zaprezentować filtry dla e-mail, czy cusik...
Może źle do tego podszedłem (Późno jest!), ale popełniłem taki kod:
<?php
$emailToValidate = "kokodzambo@gmail.com' AND email IS NULL; --";
$sanitzeEmail = filter_var($emailToValidate, FILTER_SANITIZE_EMAIL);
$validateEmail = filter_var($emailToValidate, FILTER_VALIDATE_EMAIL);
if ($validateEmail == true) {
print 'Success!' . "\n";
} else {
print 'Your e-mail: ' . $emailToValidate . ' is not correct!' . "\n";
}
print "Sanitazed e-mail: " . $sanitzeEmail . "\n";
print "Validated e-mail: " . $validateEmail . "\n";
Output:
Your e-mail: kokodzambo@gmail.com' AND email IS NULL; -- is not correct!
Sanitazed e-mail: kokodzambo@gmail.com'ANDemailISNULL--
Validated e-mail:
Sanitazed przepuszcza as well.
Obraduję za:
Zapewne miało to zaprezentować filtry dla e-mail, czy cusik..
Albo... Mam inną teorię:
$emailToValidate = "kokodżambo@gmail.com";
$sanitzeEmail = filter_var($emailToValidate, FILTER_SANITIZE_EMAIL);
$validateEmail = filter_var($emailToValidate, FILTER_VALIDATE_EMAIL);
if ($validateEmail == true) {
print 'Success!' . "\n";
} else {
print 'Your e-mail: ' . $emailToValidate . ' is not correct!' . "\n";
}
print "Sanitazed e-mail: " . $sanitzeEmail . "\n";
print "Validated e-mail: " . $validateEmail . "\n";
Meh.
Your e-mail: kokodżambo@gmail.com is not correct!
Sanitazed e-mail: kokodambo@gmail.com
Validated e-mail:
FILTER_VALIDATE_EMAIL sobie radzi. Nie mam pojęcia po co tam sanityzacja.
Ten kod jest naprawdę elegancki i do bólu logiczny.
A jednak.
Np. jeśli użyjesz samej walidacji email e(x)ample/@gmail.com byłby ok. Natomiast z samą sanityzacją example@gmail byłby ok. A jak widzisz oba emaile nie są poprawne.
Pyknąłem w kod powyżej:
$emailToValidate = "e(x)ample/@gmail.com";
$sanitzeEmail = filter_var($emailToValidate, FILTER_SANITIZE_EMAIL);
$validateEmail = filter_var($emailToValidate, FILTER_VALIDATE_EMAIL);
if ($validateEmail == true) {
print 'Success!' . "\n";
} else {
print 'Your e-mail: ' . $emailToValidate . ' is not correct!' . "\n";
}
print "Sanitazed e-mail: " . $sanitzeEmail . "\n";
print "Validated e-mail: " . $validateEmail . "\n";
Output:
Your e-mail: e(x)ample/@gmail.com is not correct!
Sanitazed e-mail: example@gmail.com
Validated e-mail:
Samo: FILTER_VALIDATE_EMAIL znowu dało sobie radę.
Chyba, że tutaj FILTER_SANITIZE_EMAIL to taki objaw troski, gdy ktoś jednak pokosi się o te nawiasy czy inne wygibasy.