Я нахожусь на ранних этапах работы над веб-приложением, и я достиг точки, когда я хочу сделать лучший выбор в отношении конкретной проблемы безопасности.На данный момент все поля, найденные в формах HTML, названы в честь столбца базы данных, который они представляют.Так, например, если в базе данных у меня есть поле с именем «электронная почта», то поле формы также будет называться «электронная почта».Это упрощает обработку моего общего кода для форм, но я, естественно, вижу одну серьезную проблему с такими именами: Они могут дать потенциальным хакерам представление о том, как структурирована моя база данных, просто просмотрев источник.
Основное решение, о котором я подумал, заключается в шифровании имен полей, чтобы у клиента никогда не было настоящих.Для шифрования будет использоваться ключ на стороне сервера.Я, однако, обеспокоен тем, что этот подход может слишком усложнить ситуацию.Например:
- Возможно, мне придется чаще использовать POST, поскольку зашифрованный текст может быть длиннее оригинала, что расширяет пределы GET, когда присутствует много полей и их данных.
- Частые вызовы шифрования / дешифрования могут привести к проблемам с производительностью в будущем.Я еще не проверял это, так что это могло бы оказаться незначительным.
- Не-AJAX GET не может использовать этот подход, не выглядя очень загадочно.
Итак, яинтересно, что вы, ребята, думаете об этом.Я слишком обдумываю это, или я на правильном пути?Есть ли лучший способ справиться с этим?
Кстати, я также знаю, что имя поля, такое как «электронная почта», не предлагает много информации разработчику (почему не txtEmail или что-то в этом роде?).Я смотрю, есть ли хорошее соглашение об именах, которое я могу принять, так как это может помочь с вышеупомянутой проблемой.