Измените HTML перед отправкой формы: предотвратите этот взлом - PullRequest
2 голосов
/ 21 мая 2011

Я пришел к выводу, что злоумышленники могут изменить HTML-форму в своем браузере перед отправкой формы. Например, переключение имен двух полей ввода одного типа.

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

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

Как мы могли бы предотвратить это?

Ответы [ 3 ]

7 голосов
/ 21 мая 2011

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

Любой может сгенерировать POST или GET любого типа на вашем сервере, и вы должны быть к этому готовы.

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

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

2 голосов
/ 21 мая 2011

Вы должны проверять свои входные данные, как указано в Руководстве по PHP для проверки . Например, у нас есть форма ввода title и body для сообщения. Когда пользователь отправляет сообщение, значение title должно содержать от 1 до 40 символов, поэтому мы должны проверить это с помощью PHP. Во-вторых, body не должен содержать вредоносный текст или код, поэтому мы должны очистить его с помощью такой функции, как addslahes().

Вся тема вращается вокруг безопасности PHP. Единственный способ предотвратить попытки взлома и злонамеренные намерения - это изучить безопасность. Начните обучение по ссылке выше.

0 голосов
/ 21 мая 2011

Насколько я знаю, самое простое и часто лучшее решение - проверить, имеет ли каждое поле ввода правильное значение с php, перед отправкой запроса в БД. Например, поле с именем «телефон» должно быть только числовым и не длиннее, чем, скажем, 10 шифров. Сделайте правила достаточно строгими, и у вас не должно быть никаких проблем. Кроме того, вы также должны убедиться, что ваши поля БД являются строгими, т.е. разрешите только длину и тип данных, которые вы хотите.

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