Является ли "обязательным", чтобы обрезать все пробелы в переменных POST / GET? - PullRequest
0 голосов
/ 24 сентября 2010

ИМХО

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

Есть ли случаи, когда это может быть вредно?

Может ли кто-нибудь привести аргументы для такой практики?

Ответы [ 3 ]

2 голосов
/ 24 сентября 2010

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

0 голосов
/ 24 сентября 2010

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

Например, предположим, что кто-то вводит строку из нескольких слов, которую вы хотите разделить.

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

«Эта строка» будет разбита на массив, который выглядит следующим образом.

$string[0] = ''
$string[1] = 'This'
$string[2] = 'string'

но "Эта строка" просто

$string[0] = 'This'
$string[1] = 'string'

Если вы выполняете строковые операции, вы можете узнать, сколько слов в строке, в первом случае (выше) будет показано 3, а во втором - 2. Слишком много вещей для поиска ибо, если действительно, начальные или конечные пробелы действительно необходимы.

0 голосов
/ 24 сентября 2010

Обычно рекомендуется очистить введенный пользователем текст, который обычно включает удаление лишних пробелов, проблемных знаков препинания и т. Д. Это также может включать замену нескольких соседних пробелов одним пробелом.

Само собой разумеется, что вы также должны защищать себя от атак с использованием SQL и HTML-инъекций, соответствующим образом очищая (предварительно обрабатывая) предоставленный пользователем текст. Самый простой способ - игнорировать знаки препинания; Другой подход заключается в преобразовании знаков препинания в безопасные escape-последовательности.

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