Я только начал хранить все мои учетные данные БД в файле WARS context.xml
и загрузил их через JNDI. Таким образом, мое приложение может повторно использовать одни и те же учетные данные в нескольких областях, и я могу использовать JNDI для их извлечения (вместо того, чтобы посыпать учетные данные по всей моей кодовой базе).Как защитить конфиденциальную информацию внутри context.xml?
Но теперь я думаю: что, если злоумышленник попадает на машину, где установлен мой сервер Tomcat? Они могут перейти прямо к моему вложенному каталогу webapps/MyApp, найти &, открыть каталог context.xml
, и вуаля - теперь они могут получить доступ к моей базе данных!
Итак, что является следующим шагом для введения безопасности здесь? Есть ли способ сохранить все мои учетные данные в каком-то хранилище ключей и ссылаться на их ярлыки изнутри context.xml
? Я все же хотел бы использовать context.xml
, чтобы мой JDBC-код мог получить доступ к учетным данным через JNDI. Если да, то как context.xml
доступ к ним безопасным способом? Каков нормальный способ борьбы с безопасностью здесь? Заранее спасибо!
У вас здесь есть проблема с курицей и яйцом. Если ваш webapp может получить доступ к БД, тогда любой злоумышленник, который попадает в поле с таким же или более высоким уровнем разрешения, также сможет получить доступ к БД. Даже если вы добавляете хранилище ключей, если ваш webapp может открыть хранилище ключей, то и злоумышленник. – Aurand
Я думаю, что большая проблема здесь заключается в входе в «машину». Не так ли? Если человек может открыть дверь, только способ, которым вы можете безопасно, поставить его в «безопасный» (шифровать вместо простых данных). – kosa
Хорошая точка @Aurand (+1) - так что типичное решение (я не могу быть единственным разработчиком Java, который боролся с этим)? –