| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > вопрос по безопасности |
| Автор: sandland 1.12.2008, 20:17 | ||||
Добрый день. Ситуация так. имеется конфигурациооный файл config.php , к примеру с таким кодом:
вопрос первый: Какова вероятность того. что сторонний пользователь сайта сможет узнать значение этих переменных? -ну скажем, при условии того, что он знает имена этих переменных и имя файла, но доступа, понятное дело, к файлам у него нету. Если вероятность >0 то подскажите пожалуйста способы защиты, ну и вообще буду рад услвшать любые советы. вопрос 2-ой. Предположим я добавил в мой файл соединение с бд:
то есть по сути имеется файл соединения с бд, что теперь может сделать злоумышленник? по логике он может из-за этого скачать дамп всей моей бд? Ну и опять же, буду рад вашим советам по-поводу того. где лучше устанавливать соединение. непосредственно в нужном файле. через класс Connection , к примеру, или же выносить соединение в отдельный файл, соблюдая какие-то меры защиты, и есть ли они вообще? |
| Автор: Валерия 1.12.2008, 20:26 | ||||
| Безопасно и то и другое. Ну запустив второй файл, он сделает коннект... И всё... Конешно, если ддосить именно этот файл, то будет не сладко мускулу) Можно
вынести в функцию
И тогда такого не будет |
| Автор: CruorVult 1.12.2008, 21:43 |
| Зайди http://ua.php.net/mysql_real_escape_string, это очень полезная функция против взлома |
| Автор: sandland 1.12.2008, 22:58 |
| спасибо. я знаю это ф-цию, естественное ее использую. Валерия, а права досутпа на php - файлы повлияют? то если я на этот конфиг 777 выставлю? |
| Автор: Dima 2015 2.12.2008, 15:57 |
| sandland, я бы вот еще чего добавил бы. Есть общепринятая практика, держать все настройки, конфиги и прочее "ВЫШЕ корня". Т.е. в корневом каталоге сайта (который выдается $_SERVER['DOCUMENT_ROOT'], обычно он выглядит как нечто вроде /home/uXXXX/domain.com/www/ или/home/uXXXX/domain.com/html/) должны быть только исполняемые скрипты, т.е. те, что непосредственно открывает юзер. Все настройки подключения к БД, классы, кеш-файлы, лог-файлы и прочая прочая, что юзеру непосредственно не надо, должно располагаться выше этого каталога, например для приведенных путей так: /home/uXXXX/domain.com/logs/ - путь для хранения логов /home/uXXXX/domain.com/parameters/ - путь для хранения файлов с параметрами (в т.ч. и константы подключения к БД) /home/uXXXX/domain.com/classes/ - путь для хранения файлов с классами /home/uXXXX/domain.com/db/ - путь для хранения файлов работы с БД /home/uXXXX/domain.com/www/ - путь для исполняемых скриптов И вот тогда, например есть у тебя исполняемый скрипт index.php в корневом каталоге, ты делаешь внутри него инклуд файла коннекта к БД, который лежит в директории /home/uXXXX/domain.com/db/: include($_SERVER['DOCUMENT_ROOT'] . '/../db/db_connect.php') Такая компановка гарантирует, что пользователь сайта не получит доступа к файлу настроек БД db_connect.php из "веб-пространства", тобишь из интернета он его вообще не откроет. |
| Автор: sandland 3.12.2008, 00:19 |
| Валерия , понял, спасибо Dima 2015 , так и сделаю, благодарю. |