Безопасно ли отказывать в доступе к файлу .ini в .htaccess? - PullRequest
8 голосов
/ 19 октября 2008

В моем приложении php wab есть файл .ini с конфиденциальной информацией. Я отказал в доступе к нему с помощью файла .htaccess:

<files my.ini>
  order deny,allow
  deny from all
</files>

У меня нет доступа к папкам вне htdocs, поэтому я не могу переместить файл .ini с территории, доступной для просмотра.

Мое решение безопасно?

Ответы [ 3 ]

7 голосов
/ 19 октября 2008

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

В случае виртуального хостинга это зависит от конфигурации сервера. Для получения дополнительной информации читайте: PHP Security в среде общего хостинга

Вы можете временно установить PHPShell и просмотреть файловую систему сервера, чтобы проверить, уязвим ли ваш сервер. (требуется знание командной строки)

4 голосов
/ 07 декабря 2013

Другое хорошее решение и мой личный фаворит (особенно при разработке кода, который может не остаться под моим строгим контролем .htaccess) - это защита самого файла .ini. Благодаря доброй душе здесь - примечания пользователя: pd в точке замерзших битов , что я делаю:

my.ini -> changes to my.ini.php

my.ini.php запускается:

;<?php
;die(); // For further security
;/*
    [category]
    name="value"

;*/

Работает отлично! Получите прямой доступ к файлу, и все, что вы видите, это ';' и это действительный, разбираемый файл .ini. Что не нравится:)

Несколько замечаний о фактической реализации (извиняюсь, если это считается «overshare», но, возможно, сэкономит кому-то время):

  1. Этот файл очень расстраивает мою IDE, и он продолжает пытаться автоматически переформатировать, что затем приводит к расстроению PHP. Благослови на Блокнот ++.
  2. Не забудьте про закрытие ;*/. Это все еще работает, если вы не включите его, но PHP предупреждает вас, что он собирается расстроиться.

отсортирован.

2 голосов
/ 19 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...