Я проходил через свое приложение, пытаясь обеспечить его как можно больше, и это заставило меня задуматься. Я всегда проверяю ввод своего пользователя, и я всегда сглаживаю ввод, так что, например, если у меня есть поле «день рождения», я уверен, что это действительная дата, прежде чем поместить его в базу данных. Но у меня также есть поля в моей базе данных, такие как «passwordresettoken», и у меня есть код, генерирующий это поле, если пользователь запросит его.Могут ли хакеры обманывать или вводить поля формы?
Теперь, на моей обычной странице профиля пользователя, у меня, очевидно, нет поля с именем «passwordresettoken», поэтому я не проверяю его и не очищаю, потому что он не должен существовать в форме, которая будет передана. На самом деле, это никогда не должно быть передано, поскольку это не то, что пользователь когда-либо вводил.
Итак, мой вопрос в том, можно ли обманывать поля ввода? Могли ли они отредактировать HTML на моей странице, чтобы включить поле passwordresettoken, а затем нанести какой-то ущерб при передаче формы?
До тех пор, пока вы не вставляя это поле в вашу базу данных, не существует какой-либо способ использовать его для компрометации вашей базы данных. – Blender
Какой блендер сказал и что вы проверяете входные данные, чтобы предотвратить инъекцию. – ArgumentNullException
Пользователь может POST, что они хотят. Существуют различные инструменты, доступные для браузеров, например. [Fiddler] (http://fiddler2.com/), чтобы обеспечить удобное изменение данных, отправленных для целей тестирования. Если вы автоматически загружаете любое поле и обрабатываете его, даже если это неожиданно, тогда у вас могут быть интересные проблемы. Даже ожидаемые данные могут иметь неожиданные значения, например. значение, которое вы не указали в списке выбора. Существует еще одна возможность, если данные формы можно переопределить, добавив значения в URL. – HABO