Для меня единственный способ получить представление о окне терминала (все еще неверно, когда изменяется размер окна) - использовать команду типа
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "mode con");
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
. При запуске без части cmd.exe
, это показывает, что команда не найдена. Также обратите внимание на часть redirectError
. Если не используется, тогда будет использоваться размер вывода Java, а не фактический. Только с этой комбинацией можно было захватить фактический размер.
Несколько человек неправильно читают это как вопрос о как к хранилище пароли в базе данных. Это неправильно. Именно о то, как сохранить пароль, позволяет Вам добраться до база данных.
обычное решение состоит в том, чтобы переместить пароль из исходного кода в конфигурационный файл. Тогда оставьте администрирование и обеспечение что конфигурационный файл до Ваших системных администраторов. Тем путем разработчики ничего не должны знать о производственных паролях, и нет никакой записи пароля в Вашем управлении исходным кодом.
Просто помещение его в файл конфигурации где-нибудь является способом, которым это обычно делается. Просто удостоверьтесь Вы:
Лучший способ не состоит в том, чтобы сохранить пароль вообще!
, Например, если Вы находитесь в системе Windows, и соединяющийся с SQL Server, можно использовать Интегрированную Аутентификацию для соединения с базой данных без пароля, с помощью идентификационных данных текущего процесса.
, Если действительно необходимо соединиться с паролем, сначала , шифруют это, с помощью устойчивого шифрования (например, с помощью AES-256, и затем защитите ключ шифрования или использование асимметричного шифрования и имейте ОС, защищают сертификат), и затем сохраните его в конфигурационном файле (за пределами веб-каталога) с сильный ACLs.
Дополнительный прием должен использовать PHP отдельный конфигурационный файл, который похож на это:
<?php exit() ?>
[...]
Plain text data including password
Это не препятствует тому, чтобы Вы установили правила доступа правильно. Но в случае взламывается Ваш веб-сайт, "требовать" или "включать" просто выйдут из сценария в первой строке, таким образом, будет еще более трудно получить данные.
, Тем не менее, никогда не позволяйте конфигурационным файлам в каталоге, к которому можно получить доступ через сеть. У Вас должна быть папка "Web", содержащая Ваш код контроллера, css, изображения и js. Это - все. Что-либо еще входит в офлайновые папки.
Если Вы говорите о пароле базы данных, в противоположность паролю, прибывающему из браузера, общепринятая практика, кажется, для помещения пароля базы данных в файл конфигурации PHP на сервере.
просто необходимо быть уверены, что php файл, содержащий пароль, имеет соответствующие полномочия на нем. Т.е. это должно быть читаемо только веб-сервером и Вашей учетной записью пользователя.
Если Вы используете PostgreSQL, то это смотрит в ~/.pgpass
для паролей автоматически. См. руководство для получения дополнительной информации.
Поместите пароль базы данных в файл, сделайте его только для чтения пользователю, служащему файлам.
, Если у Вас нет некоторых средств только разрешения php серверного процесса получить доступ к базе данных, это - в значительной степени все, что можно сделать.
если возможно создать соединение с базой данных в том же файле, где учетные данные хранятся. Встройте учетные данные в операторе подключения.
mysql_connect("localhost", "me", "mypass");
Иначе лучше сбрасывать учетные данные после оператора подключения, потому что учетные данные, которые не находятся в памяти, не могут быть чтение из памяти ;)
include("/outside-webroot/db_settings.php");
mysql_connect("localhost", $db_user, $db_pass);
unset ($db_user, $db_pass);
Для чрезвычайно защищенных систем мы шифруем пароль базы данных в конфигурационном файле (который самом защищается системным администратором). На запуске приложения/сервера приложение тогда предлагает системному администратору ключ расшифровки. Пароль базы данных тогда читается из файла конфигурации, дешифровал и сохранил в памяти для будущего использования. Все еще 100%, безопасных, так как это хранится в дешифрованной памяти, но Вы не должны называть его 'достаточно безопасным' в какой-то момент!
Ваш выбор отчасти ограничен как, поскольку Вы говорите необходимость в пароле для доступа к базе данных. Один общий подход должен сохранить имя пользователя и пароль в отдельном конфигурационном файле, а не основном сценарии. Тогда обязательно сохраните ту внешнюю сторону основное веб-дерево. Это было то, если существует веб-проблема конфигурации, которая оставляет Ваши php файлы просто отображенными как текст вместо того, чтобы быть выполненной, Вы не представили пароля.
Кроме этого Вы находитесь на правильных строках с минимальным доступом для используемой учетной записи. Добавьте к этому
Peter
Если вы размещаете на чужом сервере и не имеете доступа за пределами вашего корневого веб-сайта, вы всегда можете поместить свой пароль и / или соединение с базой данных в файл, а затем заблокировать файл с помощью .htaccess:
<files mypasswdfile>
order allow,deny
deny from all
</files>