Требуется ли санация ввода пароля? - PullRequest
4 голосов
/ 12 января 2010

Я пытаюсь санировать любые введенные данные, убедившись, что данные действительны для определенного поля (например, имя не может содержать специальные символы / цифры и т. Д.). Однако я не уверен, что делать когда дело доходит до поля пароля. Нужно ли мне вообще заниматься дезинфекцией, поскольку пароль просто хешируется? Если пользователь вводит что-либо вредоносное через текстовое поле пароля, следует ли мне проверять наличие подозрительных действий? AFAIK, некоторые пользователи могут (должны!) Иметь специальные символы, такие как «<>», которые обычно вызывают предупреждение о потенциальной атаке. Должен ли я просто оставить поле пароля без присмотра? Ограничение ввода паролей - последнее средство для меня, так как я считаю, что пользователи должны использовать всевозможные символы в своих паролях.

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 января 2010

Если вы обеспокоены атаками SQL-инъекций, вам следует начать использовать параметризованные запросы для взаимодействия с вашей базой данных. Поскольку это бизнес-правило определения допустимых символов в пароле, я ничего не буду удалять, пока мой клиент этого не делает.

Все остальные входные данные должны быть обработаны, так как они также могут отображаться на вашей странице и могут привести к атакам XSS.

3 голосов
/ 12 января 2010

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

Немного не по теме, учитывая, что вы используете asp.net, но заметным исключением будет то, что вы используете PHP и MySQL и делаете что-то вроде этого:

UPDATE users SET password = PASSWORD('$pwd') WHERE userid = $uid

В этом случае вы сначала захотите очистить $ pwd.

...