Разве анализ PHP-файла в PHP лучше, чем определение переменных в коде? - PullRequest
3 голосов
/ 24 декабря 2010

Я читал о PDO и наткнулся на функцию parse_ini_file. Некоторые разработчики предложили использовать эту функцию для анализа параметров БД, а не для жесткого кодирования параметров БД в коде из соображений безопасности.

Мой вопрос к вам: имеет ли смысл делать чтение файла для каждой загрузки вашего PHP-приложения для этой дополнительной «безопасности»?

Интересно, сколько стоит чтение этого файла ..

php 5.3 в комментариях http://www.php.net/manual/en/class.pdo.php

Ответы [ 4 ]

5 голосов
/ 24 декабря 2010

На самом деле я не понимаю, насколько это безопаснее.

Например, если настройки вашей БД хранятся в определениях в файле "config.php" вне основного веб-корня , они так же безопасны, как если бы они были сохранены в INI-файле, и не было бы никаких затрат на разбор для каждой страницы (кроме необходимости включать файл конфигурации в соответствии с нормой).

1 голос
/ 24 декабря 2010

Наверное, нет. Если это файл .ini, то браузер может просто зайти на него и загрузить его. По крайней мере .php имеет порядочность пустого экрана.

1 голос
/ 24 декабря 2010

Это имеет смысл, если у вас есть больше, чем просто доступ к базе данных, хранящийся в INI-файле.Он может действовать как конфигурация для вашего приложения, поэтому вам не нужно открывать 10 файлов, чтобы изменить 3 жестко закодированные переменные / константы / что угодно.Если вам не нравится читать файл каждый раз, когда запрашивается приложение, используйте php-файл для хранения всех ваших настроек конфигурации (держать их все в одном месте очень хорошо), а в качестве sugested сохраняйте ini / phpКонфигурационный файл из вашего корня сети.

1 голос
/ 24 декабря 2010

Параметры жесткого кодирования в файлах PHP плохие, потому что те же самые файлы PHP будут отправляться, копироваться, помещаться в репозитории и т. Д. С паролями следует обращаться с большей секретностью.Также раздражает необходимость перезаписывать исходные файлы локальными копиями.

Обратите внимание, что я имею в виду именно встраивание в обычные файлы PHP в кодовую базу вашего проекта.Если вы поместите свои параметры конфигурации в PHP-файл, который является внешним по отношению ко всему этому, то ничего из вышеперечисленного не применимо.

Если вы беспокоитесь о накладных расходах при разборе одного файла конфигурации, то вам не следуетвообще используя PHP ... Однако вы можете ограничить чтение файла, анализируя его только тогда, когда не может быть найдена кэшированная (например, memcache) копия.

...