Пользователь вводит текст в поле - на что мне нужно обращать внимание?
Абсолютно ничего!Нет проблем принять любую информацию из пользовательского ввода.
Проблема в том, что вы делаете с этим вводом.Некоторые идеи:
- Объединение пользовательского ввода для формирования запросов SQL может привести к
SQL injection
. - Применение пользовательского ввода к буферам фиксированной длины может привести к
buffer overflows
. - Отправка пользовательского ввода обратно на страницу HTML может привести к
cross site scripting
. - Пользовательский ввод, используемый как часть выполнения команд на сервере, может привести к
arbitrary command execution
. - ...
Видите ли, абсолютно не нужно беспокоиться о пользовательском вводе.Скорее, вам нужно убедиться, что пользовательский ввод не может быть «введен» в SQL, буфер, HTML или команды, которые вы выполняете на сервере.
Кроме того, вы должны убедиться, что пользовательский ввод действительносоответствует спецификациям типа вашего бэкэнда (т. е. люди могут легко манипулировать вашими входными данными для отправки чего-либо обратно на сервер, что может привести к генерированию исключений на бэкэнде).И наконец, пользователи могут часто манипулировать параметрами, чтобы подделать свою идентификацию, если вы плохо связываете клиентские запросы с внутренними авторизованными транзакциями.