[Moscow.pm] Чем лучше всего валидировать данные от пользователя?
Alexandr Gomoliako
zzz на zzz.org.ua
Пт Апр 27 11:09:53 PDT 2012
> Validator::Custom не заточен вообще ни под что, на то он и Custom.
> Ежели вам не понятно, как его применить с Dancer, то, ну, печально это.
Насчитал в нем 5 абстракций в $rule и 5 в проверке на валидность, а
это только кусочек примера из SYNOPSIS. О каждой из них надо почитать,
часть из них вообще не описана, например не ясно как int проверяется,
влезит ли он в 32 бит или в 64 бит, знаковый или нет, в описании одно
слово - Integer.
Это слишком сложно для валидации. Большие шансы, что что-то пропустите
и будет как с Rails, уязвимость о которой никто не знает, но все вроде
как предупреждены.
Код из примера:
my $rule = [
age => {message => 'age must be integer'} => [
'not_blank',
'int'
],
name => {message => 'name must be string. the length 1 to 5'} => [
'not_blank',
{length => [1, 5]}
],
price => [
'not_blank',
'int'
]
];
my $result = $vc->validate($data, $rule);
unless ($result->is_ok) {
if ($result->has_missing) {
my $missing_params = $result->missing_params;
}
if ($result->has_invalid) {
my $messages = $result->messages_to_hash;
}
}
Подробная информация о списке рассылки Moscow-pm