Я полностью понимаю, что JavaScript должен использоваться для улучшения пользовательского опыта, однако иногда я использую его для проверки ввода, например, чтобы проверить, содержит ли текстовое поле пароля более 5 символов или проверяет, было ли уже введено имя пользователя в текстовом поле имени пользователя существует. Как вы можете себе представить, если пароль меньше 5 символов или имя пользователя уже существует, кнопка регистрации отключена.Каков правильный способ проверки ввода пользователя?
Однако, это может быть изменено из браузера пользователей, так же как их лучший способ проверки ввода пользователя?
Я понимаю, что могу проверить все это через сервер, просто проверив текстовые поля при нажатии кнопки регистрации, но, безусловно, их должны быть лучше, так что пользователь не может изменить?
BTW: Я использую Visual Studio C# ASP.NET
Кроме того, я правильно думать, что регулярное выражения выражение может быть изменено на стороне клиентов
Вы правы, считая, что все, что образуется на стороне клиента, является ненадежным. Даже такие вещи, как группы переключателей или флажки, которые нельзя изменить без редактирования dom. Да, выражение регулярного выражения может быть изменено. Вам нужна проверка как на стороне клиента (UX), так и на стороне сервера (фактическая безопасность). – jdphenix
Основное правило: Никогда не доверяйте пользователю. Все, что вы размещаете в браузере, можно манипулировать любым, кто покидает ваш сервер. Таким образом, принятая практика заключается в том, чтобы проверять на стороне клиента только как механизм пользовательского опыта и выполнять проверку на стороне сервера как фактическую проверку. –
Независимо от того, что вы делаете или не выполняете клиентскую сторону, вы должны * также * иметь строгие входные проверки на стороне сервера. Сервер - ваш последний - и лучший - защита от незаконных вводов. И да, практически все может быть изменено на стороне клиентов. В значительной степени то же самое относится и к полезной нагрузке URL и HTTP. Это не делает использование Javascript regex менее эффективным ...Trust Nothing;) – paulsm4