Это восходит к моему другому вопросу, на который я думал, что было достаточно ответов, но после размышления не уверен, что это было (извините).
Справка:
Я генерирую форму динамически. Я извлекаю из базы данных элементы управления.
Я должен связать каждый элемент управления с идентификатором базы данных, который не является идентификатором сеанса пользователя. Я делаю это в настоящее время, сохраняя свой идентификатор в идентификаторе для веб-элемента управления с некоторыми другими вещами, чтобы сделать его уникальным / понятным, что я делаю.
В ответном сообщении я перебираю все элементы управления на моей веб-странице, проверяя мой специальный идентификатор, т.е. MyGeneratedTextBox_ID_Unique. Этот процесс позволяет выполнить два важных шага: идентифицировать элемент управления, созданный мною, а также получить идентификатор для этого поля ввода.
И все это работает, но я все еще беспокоюсь о его безопасности. Я не вижу проблемы безопасности с показом фактических идентификаторов базы данных в этом случае, хотя согласен, что это не желательно. Однако меня беспокоят следующие возможности:
Если пользователь может добавить в мою коллекцию гнусный элемент управления и использовать его для атаки SQL-инъекцией.
Более академично, но если пользователь может каким-то образом хранить данные для полей, он не сможет получить к ним доступ путем изменения идентификаторов.
Я согласен, что это "взлом" способа сделать это. Но мой вопрос в том, является ли это угрозой безопасности и есть ли «простой» способ сделать это менее взломанным способом?
Я предполагаю, что только элементы управления, которые создаются / создаются на странице, добавляются в список элементов управления. Таким образом, все элементы управления должны быть созданы на стороне сервера, и, следовательно, проблема безопасности - это адрес, а просто требуется проверить. Еще раз спасибо.
PS:
Я видел добавление свойства для каждого элемента управления и шифрование состояния представления было бы немного более безопасным.