Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 28.07.2014
Сообщений: 29

Фильтрация на стороне сервера и клиента

07.10.2014, 15:25. Показов 3401. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите, пожалуйста. Меня одолевает вопрос, связанный с фильтрацией форм. А именно: (на примере регистрации) фильтрация должна проходить на стороне фронтенда или бекенда? Или как-нибудь "смешано"?
В пользу фильтрации на бекенде можно привести факт - у пользователя отключён JS, тогда вся фильтрация форм на стороне фроненда теряет смысл =\
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2014, 15:25
Ответы с готовыми решениями:

Формировать блоки на стороне клиента или сервера?
Как делают правильно и есть ли разница ? Сформировать блок на php, и передать через json.А JS уже выведет просто код. //...

Инициировать попап на стороне клиента со стороны сервера
Нужно реализовать вот что - инициировать попап на стороне клиента со стороны сервера. Например, чувак заходит на индекс и я хочу запустить...

Создание превью на стороне клиента
Всем доброго дня. Подскажите возможно ли как-то произвести уменьшение изображения (jpg,png и т.д.) ДО отправки его на сервер?...

10
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.10.2014, 15:31
И там, и там, чаще всего.
0
0 / 0 / 1
Регистрация: 28.07.2014
Сообщений: 29
07.10.2014, 15:34  [ТС]
Норм)
Можно какой-нибудь тонкий пример ?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.10.2014, 15:41
пример чего?
0
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
07.10.2014, 15:45
например на фротэнде не дает пользователю написать ничего кроме цифр, а на бекэнде еще раз проверяется цифры ли
1
0 / 0 / 1
Регистрация: 28.07.2014
Сообщений: 29
07.10.2014, 15:46  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
пример чего?
KOPOJI На примере регистрации
Логин, мейл, пароль, повтор пароля - эти формы, наверное, лучше на бекэнде фильтровать ?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.10.2014, 17:02
Я же сказал, и там, и там проверять. На стороне клиента для удобства пользователя (и уменьшения количества запросов к серверу), на стороне сервера для надежности
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
07.10.2014, 18:13
На сервере-обязательно, на клиенте - по желанию заказчика
0
15 / 8 / 6
Регистрация: 12.03.2014
Сообщений: 22
07.10.2014, 18:44
Kovalenko, вот смотрите как обстоит дело.
Браузер просто выполняет работу которую мы ожидаем, например с помощью JS проверяет формы и заставляет пользователя вводить требуемые данные, но никто не мешает передать запрос вашему серверу не через браузер (хакеры редко когда мучаются через браузеры, продвинутые имеют набор требуемых утилит, которым глубоко "ложить" на любые JS и HTML разметку с размерами полей, они просто формируют четкие запросы с произвольными данными для ваших "полей"). Ваш сервер не умеет отличать запрос браузера от запроса хакера (забудьте про переменную $_SERVER['HTTP_USER_AGENT'], это только для "честных" посетителей, так как в нее тоже можно передать почти все что душе угодно, хоть анекдот написать

Таким образом проверка данных на стороне клиента рассчитана лишь на честного посетителя и поможет вам сократить объем запросов к вашему серверу с неверными данными от ЧЕСТНЫХ посетителей. Но никакой JS или HTML формы не спасут вас от отправки прямого запроса вашему серверу (это то что собственно хакеры и делают).
Более того, JS может быть у пользователя отключен, пользователь может пользоваться браузером который сам себе на уме и не делает того чего вы от него ждете, в итоге JS не сработает а "размер" поля формы не будет соблюдаться.

Следовательно, какие бы системы проверки на стороне клиента вы не делали, поступившим данными НИКОГДА нельзя доверять, хочется или нет их придется перепроверить. Просто JS сделает это для честных пользователей более быстрым, красивым, удобным и снизит количество "ошибочных" запросов к серверу.

Таким образом, желаете сделать удобно для конечного пользователя и сократить запросы на сервер, делайте проверку на стороне клиента, а на стороне сервера В ЛЮБОМ случае делать НАДО ... собственно то о чем вам все выше написавшие и говорят

Просто запомните незыблемое правило, вашему серверу можно передать любые данные в запросе и НИКАКАЯ проверка за пределами самого сервера не гарантирует корректности этих данных
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.10.2014, 20:10
Честный пользователь может оказаться таким же хакером, благо есть консоль браузера..
1
0 / 0 / 1
Регистрация: 28.07.2014
Сообщений: 29
08.10.2014, 00:26  [ТС]
NR55RU, спасибо за развернутый ответ.
И ведь действительно, что js-фильтр нужен для честных пользователей. Вы правильно сказали, что тот, кто хочет обойти js-фильтрацию, тот обойдет ее. Но главное, чтобы сервер дал "отпор". Но теперь всё стало на свои места. Спасибо всем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2014, 00:26
Помогаю со студенческими работами здесь

Как проверить есть ли файл на стороне клиента?
Вообщем есть такой плагин для просмотра 3д моделей cult3d, по нему не так много инфы, но нужно проверять есть ли этот плагин у клиента. ...

Как определить дату и время на стороне клиента
Коллеги, добрый день! Необходимо сформировать идентификатор состоящий из даты (ГГГГММДД) и времени (ЧЧММССМММ - последние три...

Послать запрос, имитирующий нажатие на кнопку на стороне клиента
День добрый! Помогите разобраться с кнопкой. есть такой код кнопки <div class="personVote"> <div...

Как узнать на стороне сервера, какой тип данных передан через ajax запрос
Здравствуйте друзья и снова к вам с просторов поисковиков. В общем у меня такая задача. Я посылаю со стороны клиента ajax две картинки,...

Как перезагрузить страницу сервера со стороны клиента
На сервере при каждой загрузке страницы генерируются пароли и записываются в переменные: echo "var password1 = '$password1'; var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru