Раньше мы сохраняли DB пользователя / pass в файле конфигурации, но с тех пор попадали в параноидальный режим - применяя политику Defense in Depth .
Если ваше приложение скомпрометировано , пользователь получит доступ к вашему конфигурационному файлу и, следовательно, есть вероятность, что взломщик сможет прочитать эту информацию. Файлы конфигурации также могут попасть в управление версиями или скопировать серверы.
Мы переключились на сохранение пользовательских / pass в переменных среды, установленных в Apache VirtualHost. Эта конфигурация читается только root: надеюсь, что ваш пользователь Apache не работает как root.
Кон таким образом, что теперь пароль находится в глобальной переменной PHP.
To смягчите этот риск, мы имеем следующие меры предосторожности:
phpinfo()
отключен. PHPInfo - это легкая цель получить обзор всего, включая переменные среды. Более простой способ сделать это - использовать ("*")
, который дает все прямые дочерние элементы узла контекста.
Реализация:
WebDriver driver = DriverFactory.getWebDriver()
//get the parent element
WebElement slotsGrid = driver.findElement(By.id('js-' + numOfSlots + '-grid'))
//use the parent element to get all the immediate children
List<WebElement> children = slotsGrid.findElements(By.xpath("*"))
Вот xpath для получения всех div слотов.
CSS:
div[id^='js-8-grid'] >div[id^='js-8-slot']
.