Необходимо ли сделать проверку на стороне сервера?

Одно из преимуществ поблочного тестирования является предсказуемостью.

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

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

14
задан cletus 20 July 2009 в 23:47
поделиться

16 ответов

Браузер / проверка на стороне клиента - это удобство. На это нельзя полагаться. Вам абсолютно необходимо дублировать любую проверку на уровне клиента с проверкой на стороне сервера.

91
ответ дан 1 December 2019 в 05:47
поделиться

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

1
ответ дан 1 December 2019 в 05:47
поделиться

Definitely do both. Client side validation is good for simple type validation (for example does this match a properly formated email address) but since you cannot ensure that your data is coming from your pages (form spoofing is a common hack) you should always duplicate the validation on the server side.

Furthermore server side validation allows you to do more a more thorough business logic check of the data before committing it to your database.

1
ответ дан 1 December 2019 в 05:47
поделиться

Если вы не выполняете проверку на сервере, кто-то перезапишет вашу проверку на стороне клиента с помощью Firebug или просто обойдет ее с помощью другого расширения Firefox под названием Poster. Удачи в очистке вашей базы данных!

Проверка на стороне клиента выполняется только для того, чтобы пользователь сразу знал, что они сделали ошибку. Он не предназначен для защиты чего-либо.

1
ответ дан 1 December 2019 в 05:47
поделиться

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

1
ответ дан 1 December 2019 в 05:47
поделиться

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

1
ответ дан 1 December 2019 в 05:47
поделиться

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

2
ответ дан 1 December 2019 в 05:47
поделиться

Да, вам все равно нужно выполнить проверку на стороне сервера. сообщение AJAX по-прежнему остается просто POST. Кто-то может достаточно легко написать страницу, которая выполняет POST с неверными данными, или даже проще использовать такой инструмент, как плагин Tamper Data в Firefox, для изменения данных после того, как ваш Javascript проверит их.

2
ответ дан 1 December 2019 в 05:47
поделиться

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

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

3
ответ дан 1 December 2019 в 05:47
поделиться

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

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

Следовательно, важно иметь проверки на стороне сервера.

3
ответ дан 1 December 2019 в 05:47
поделиться

Короче да. Вы никогда не можете быть уверены в том, что то, что вам отправляет браузер, является законным.

6
ответ дан 1 December 2019 в 05:47
поделиться

Да, вы всегда должны выполнять проверку на стороне сервера. Javascript / AJAX хорош для мгновенной обратной связи с пользователем, но он не дает вам никакой защиты на стороне сервера.

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

8
ответ дан 1 December 2019 в 05:47
поделиться

Я всегда рассматриваю это как

  • Проверка клиента для удобства использования
  • Проверка сервера для обеспечения безопасности.
14
ответ дан 1 December 2019 в 05:47
поделиться

Ладно, весь ВАШ код правильный. Что происходит, когда хакер заменяет ваш javascript тем, что ему нравится, или просто отправляет POST и GET, как если бы это был ваш код?

Проверка на клиенте является проблемой удобства использования.

Проверка на этапе ИСПОЛЬЗОВАНИЯ - это проблема безопасности.

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

Например, вы проверяете данные на соответствие SQL-инъекции перед сохранением в базе данных SQL - библиотека сделает это за вас, если вы выберете хороший один. Вы проверяете данные по CSS, когда отображаете их как HTML. Но если вы предоставляете данные как XML, RSS или JSON, тогда проверка будет другой - если вы проверили ее только при вводе,

33
ответ дан 1 December 2019 в 05:47
поделиться

It is absolutely essential to have server-side validation, as a user could turn off JavaScript or simply submit any data they wanted to your server-side handler, since they don't have to use your JS-enhanced form to submit the data.

I've always thought of client-side/JavaScript validation as a UI enhancement, with the server-side validation as the "actual" validation. Having the JS validation is nice for immediate notification of improper data to help your users.

3
ответ дан 1 December 2019 в 05:47
поделиться

Валидация на стороне клиента противоречит концепции "всемирной паутины", потому что причина, по которой мы сделали html текстовым, заключается в том, что каждое устройство должно быть способно обрабатывать rsponce, каким бы маленьким оно ни было. Теперь проверка на стороне клиента требует вычислительной мощности используемого устройства, а это не то, что "www" ожидает от устройства, потребляющего html. Валидация на стороне клиента особенно важна для экономии пропускной способности, так как скорость интернета растет с каждым днем, придет время, когда нам больше не понадобится валидация на стороне клиента.

0
ответ дан 1 December 2019 в 05:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: