нет тега сценария против проверки на стороне сервера?

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

Недавно мы внедрили теги noscript для перенаправления пользователей на страницу с ошибкой, если они не используют javascript.
Мне трудно убедить кого-либо, почему проверка сервера должна выполняться вместе с проверкой клиента, а не использовать noscript, учитывая 99% пользователей теперь имеют браузеры с поддержкой JavaScript.

Кроме того, добавление открывающего и закрывающего тега, а также перенаправления может быть выполнено за 5 секунд, в то время как проверка сервера требует гораздо больше времени и денег.
Что вы думаете??
В чем реальное преимущество проверка сервера, если у нас теперь нет сценария, кроме 1% пользователей, которым просто нужно включить свои сценарии?


person Jim    schedule 25.05.2011    source источник
comment
Если кто-то из злоумышленников захочет вмешаться в ваш сайт, он может выборочно сломать проверку вашего javascript с помощью firebug или другого инструмента.   -  person Sam Dufel    schedule 25.05.2011
comment
Верно... но... Насколько я понимаю, вы можете отключить javascript разными способами, а не только Firebug. Но даже с помощью firebug вы не можете отключить тег noscript и успешно перезагрузить страницу без повторного запуска тега noscript. Таким образом, этот тег noscript кажется нерушимым даже в firebug. Я наверняка могу ошибаться.   -  person Jim    schedule 25.05.2011
comment
что Сэм говорит, вы можете изменить скрипт, который запускается с помощью firebug.   -  person Daniel A. White    schedule 25.05.2011
comment
Можно ли вообще назвать это проверкой на стороне сервера, когда мы говорим о поддержке Javascript? Серверу необходимо полагаться на информацию о браузере, отправленную клиентом.   -  person Peter Hedberg    schedule 20.08.2013


Ответы (5)


Всегда следует выполнять проверку на стороне сервера. Период. Без вопросов. Вы никогда не должны полагаться на проверку клиента. Предположим, бот или что-то еще делает POST-запросы, минуя теги JavaScript и noscript. Одна вещь, не имеющая проверки на стороне сервера, заключается в том, что она также открывает атаки SQL-инъекций.

person Daniel A. White    schedule 25.05.2011
comment
Хотя это правда, он попросил преимущества. Этот ответ, скорее всего, не понравится его боссу. - person Levi Morrison; 25.05.2011
comment
С помощью такого инструмента, как firebug, я могу изменить все, что захочу, при проверке на стороне клиента. - person Forgotten Semicolon; 25.05.2011
comment
Кроме того, отсутствие проверки на стороне сервера не означает, что вы открыты для SQL-инъекций. Управление безопасностью — это не то же самое, что проверка. Это, конечно, семантика. - person Levi Morrison; 25.05.2011

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

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

  • риски безопасности
  • риски целостности данных
  • репутационные риски
  • финансовые риски

вашему клиенту.

Если да, то вам необходимо как можно скорее пройти проверку на стороне сервера, прежде чем кто-то атакует ваш сайт.

person planetjones    schedule 25.05.2011

Примечания/предложения:

  • Зарегистрируйте количество людей, посетивших страницу noscript. Используя эти данные, вы можете указать потенциальное значение дохода, не полученного из-за отсутствия проверки на стороне сервера. Боссы обычно свободно говорят на языке денег.
  • Потенциальные инъекции SQL и другие проблемы безопасности также очень проблематичны. Вы должны по крайней мере очистить свои значения из своей формы, даже если вы их не проверяете.
  • Целостность данных может быть нарушена. Иногда ваши скрипты могут дать сбой, но они пройдут проверку noscript. Без проверки на стороне сервера у данных меньше гарантий того, что они должны быть такими, какими они должны быть.
  • Отсутствие поддержки JavaScript выглядит плохо для такой простой вещи. Честно говоря, это риск для репутации.
person Levi Morrison    schedule 25.05.2011

Если кто-то целенаправленно попытается сломать вашу систему/веб-сайт, отключить javascript и ввести некоторые скрипты и SQL-инъекции. Только путем проверки на стороне сервера вы можете заблокировать его. Это очень нужно, как я понимаю

person zod    schedule 25.05.2011

Вам не нужно быть профессионалом, чтобы обойти проверку Javascript с помощью таких инструментов, как Firebug. Если вы не добавите проверку на стороне сервера, целостность ваших данных окажется под угрозой, что, в свою очередь, вызовет проблемы не только у вашей компании, но и у ваших клиентов. Здесь на карту поставлена ​​репутация вашей компании (в случае атаки причина/ответ, предоставленный вашим клиентам, например, «У нас не было проверки на стороне сервера», будет, по меньшей мере, очень неловко, поскольку это обычная практика, чтобы добавить проверка на стороне сервера).

person Aniket    schedule 25.05.2011
comment
Насколько я понимаю, вы можете отключить javascript разными способами, а не только Firebug. Но даже с помощью firebug вы не можете отключить тег noscript и успешно перезагрузить страницу без повторного запуска тега noscript. Таким образом, этот тег noscript кажется нерушимым даже в firebug. Я наверняка могу ошибаться. - person Jim; 25.05.2011