Запретить добавление дополнительных полей формы HTML - PullRequest
0 голосов
/ 16 июня 2019

В итоге: я хочу гарантировать, что отправленные данные application/x-www-form-urlencoded содержат тот же список полей, что и HTML-форма, которую я обслуживал, и не были взломаны на стороне клиента.

Я создаю HTML-формы с помощью Flask и Jinja2. У меня есть надежный механизм авторизации и обширная клиентская проверка полей и на стороне сервера. Тем не менее, для действия отправки форм обновления я использую сгенерированные методы API на стороне сервера (сгенерированные Python Eve), которые будут принимать любое допустимое подмножество списка полей моей сущности.

Поэтому я хочу убедиться, что поля, отправленные пользователем, в точности совпадают с полями, которые появились в исходной HTML-форме, и чтобы никакие поля не были добавлены или удалены при хакерской атаке на стороне клиента. Я рассматриваю возможность создания хэша SHA-1 всех имен полей формы в самой форме во время генерации формы. Клиент отправит этот хеш в заголовок запроса, и я проверю на бэкэнде, что он соответствует хешу имен полей формы, которые фактически были отправлены.

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

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