При проверке формы я должен предполагать, что поле является действительным или недействительным? - PullRequest
1 голос
/ 02 марта 2012

Когда я пишу код проверки для веб-формы, я обычно предполагаю, что содержимое поля является действительным, и пытаюсь доказать, что оно недействительно.Не лучше ли предположить, что содержимое поля недействительно, а затем попытаться доказать, что оно допустимо?

Очень простой пример (псевдокод):

function isValid( formFieldValue, minLength, maxLength ) {
    valid = true;

    fieldLength = length( formFieldValue );

    if( fieldLength  < minLength ) {
        valid = false;
    }

    if( fieldLength > maxLength ) {
        valid = false;
    }

    return valid;
}

лучше предположить, что указанное поле является недействительным, и соответствующим образом изменить мои проверки?

Обратите внимание - я не говорю о защите XSS или фильтрации входных данных.Мы никогда не можем предполагать, что пользовательский ввод безопасен.Я говорю о проверке таких вещей, как минимальная / максимальная длина или действительный адрес электронной почты в поле формы.

Ответы [ 3 ]

0 голосов
/ 05 марта 2012

Я думаю, что лучшая идея - принять неверные данные и доказать правильность. Это легче.

Для javascript уже существует множество библиотек, решающих вашу проблему.

например. Магистральные.Формы https://github.com/powmedia/backbone-forms

плагин валидации jQuery http://bassistance.de/jquery-plugins/jquery-plugin-validation/

0 голосов
/ 05 марта 2012

Дело в том, выполняются ли все ваши условия или нет.

Случай 1: предположим, что форма действительна, а затем проверьте ее недействительность, проверив, например, 2 условия. Вариант 2. Предположим, что форма недействительна, а затем проверьте 2 условия, является ли она недействительной?

В обоих случаях вам нужно будет проверить все условия, которые нужно выполнить, потому что вы хотите проверить все свои поля. Поэтому, независимо от того, предполагаете ли вы, что он действителен или недействителен при запуске, не имеет значения, мы в основном проверяем его на недействительность.

0 голосов
/ 05 марта 2012

Я думаю, что когда вы просто говорите о таких вещах, как длина и т. Д., Это не имеет большого значения.Но я могу предположить, что ввод неверен, и доказать, что это не так, потому что я делаю то же самое, вероятно, с вводом XSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...