Является ли проверка JavaScript плохой?

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

Вопрос:

Что делать, если пользователь (или, возможно, плохой парень) отключает JavaScript?

Вы потерялись!

  • Является ли оценка JavaScript обоснованной?
  • Должны ли мы когда-либо использовать его сейчас?
  • Есть ли какие-либо решения для этого?

Исправьте меня, если я ошибаюсь.

Ответ 1

Является ли оценка его обоснования JavaScript?

Да, поскольку он обеспечивает лучший пользовательский интерфейс и сохраняет полосу пропускания.

Должны ли мы когда-либо использовать его сейчас?

Да, по вышеуказанным причинам.

Есть ли какие-либо решения для этого?

Да, используйте также проверку на стороне сервера.

Ответ 2

Что делать, если пользователь (или, возможно, плохой парень) отключает javascript?

Как уже было сказано: просто не полагайтесь на клиента. Никогда не делайте этого. Проверьте все на сервере еще раз.

Должны ли мы когда-либо использовать его сейчас?

Да - поэтому пользователь сразу видит, что неправильно. В противном случае ему пришлось сначала отправить данные, которые могут занять некоторое время. Кстати, вы уменьшаете трафик на свой сервер.

Это просто более интуитивно.

//EDIT: BTW: ValidationRules ASP.NET содержит как проверку на стороне клиента, так и сервер, насколько я знаю.

Ответ 3

Валидация Javascript хороша тем, что обеспечивает лучший пользовательский интерфейс.

Однако вы должны никогда полагаться на него и должны проверяться на сервере независимо.

Ответ 4

JavaScript улучшает пользователя interaction для вашего продукта или услуги. Взаимодействие пользователей (пользовательский ввод и ответ машины или наоборот) является важной характеристикой наших приложений. Как и все мы, продукты становятся более интерактивными, чем раньше. И эта interaction часть может (только) создаваться в JavaScript (ActionScript для Flash Player). Мы все согласны с этим - всегда есть рассчитанная сумма работы, которая может быть выполнена на стороне клиента (машине), чтобы избежать вызовов, не беспокоя их отправлять на сервер (ы). Существует много приложений, которые сильно зависят от сценариев client- script. И если они обнаружили, что вы не разрешаете необходимые сценарии, они просят оставить сообщение в теге noscript. Но я думаю, что каждый хочет, чтобы он был включен, поскольку все мы запускаем вкладку с Gmail, Facebook и т.д.

Тем не менее, это все равно не следует игнорировать, так как мы стремимся захватить каждую возможность (аудиторию/клиента) и работать с ней, по крайней мере, лучше, чем разваливаться. Он по-прежнему работает!

В качестве пользователя платформы Microsoft Development Platform есть удобное решение на платформе .NET. Это не требует двойного усилия по таким вопросам. Используйте проверку на стороне клиента, в то время как скрипты отключены с помощью Page.Validate() и Page.IsValid.

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack) {
        Page.Validate(); // If you missed, then you got the second chance ...
    }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (Page.IsValid) { // Confirm you do a proper validation before moving to perform any process
        Response.Write("Done!");
    }
}

Надеюсь, это поможет.

Ответ 5

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

Ответ 6

Использование JavaScript не ошибочно. Мы используем его с давних пор. Он используется для проверки на стороне клиента.

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

Ответ 7

Проверка на стороне клиента (Javascript) - это о юзабилити, и ничего больше. Если стоимость внедрения не стоит воспринимаемого увеличения удобства использования, то не тратьте на это время. В эти дни это довольно легко сделать, хотя!

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

Ответ 8

Если вы узнаете только одну вещь из этой темы, пусть это будет:

Никогда - ни при каких обстоятельствах - доверять данные из браузера и всегда проверять данные запроса на стороне сервера.

Должны ли мы когда-либо использовать его сейчас?

Да, определенно. Вам не нужно проверять пустое поле на стороне сервера. Это не что-то вроде проверки доступности электронной почты (уникальность электронной почты). Если вы все равно откажетесь от этого пустого поля, нет смысла отправлять его на сервер и делать сервер делает для этого дополнительную работу.

Ответ 9

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

Ответ 10

JavaScript полезен для проверки на стороне клиента. Но вы не можете полагаться только на них. Вы должны использовать проверку на стороне сервера в отношении опубликованных данных. JavaScript просто предотвращает ненужные сообщения на сервере.

Ответ 11

Вы можете сделать проверку сервера и клиентской стороны довольно безболезненной, используя фреймворк, который поддерживает оба. Раньше для ASP.NET я использовал валидаторы Peter Blum:

http://peterblum.com/

При этом вы удаляете элементы проверки на свою страницу, подключаете их к входам (текстовые поля, выпадающие списки и т.д.) и указываете свойства проверки (минимальная длина, требуемая, сообщение об ошибке и т.д.). Когда страница запускается, фреймворк выдает эквивалентный код для клиента (JavaScript) и сервера (ASP.NET) для выполнения вашей проверки.

Без такой структуры, как указывали другие плакаты, валидация может быть трудоемкой.

Мне было бы интересно узнать что-нибудь подобное для PHP или других технологий.

Ответ 12

У вас должно быть несколько уровней проверки.

Проверка на стороне клиента

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

Проверка на стороне сервера

Если javascript отключен, сервер должен также включить уровень защиты - валидация, чтобы запретить ошибочные запросы.

Ответ 13

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

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

Использование этого метода обеспечит безопасность данных и целостность данных. При повторном использовании либо уровня персистентности, и уровня данных, либо вашего внешнего интерфейса на вашем собственном сайте (или через веб-службу, настольное приложение или мобильное приложение), если они разработаны надлежащим образом, эти процедуры проверки уже установлены и могут быть повторно занятым. Это должно оказаться очень полезным для вас, ваших коллег и вашего руководства, если вы будете работать в команде.

Ответ 14

Is JavaScript validation worth of it?

Хорошо, да, это так. При использовании проверки JavaScript вы можете легко получить любую информацию о сайте клиента по сравнению с проверкой JavaScript, что обеспечивает лучший пользовательский интерфейс.

   Should we ever use it now?

Да, вы можете из-за того, что пользователь может увидеть там ошибку или что они делают неправильно в режиме реального времени

Are there any solutions to this?

да, вы также можете использовать проверку на стороне сервера. Но когда-нибудь это займет больше времени .it также небезопасно