Насколько безопасно хранить конфиденциальную информацию в файле .PHP на сервере Apache? - PullRequest
2 голосов
/ 28 сентября 2010

Я делаю простой в настройке, PHP-сайт без базы данных , который хранит свои данные вместо этого в текстовых файлах.

Установкой является Linux / Apache /PHP server.

До сих пор информация была не чувствительной , поэтому я храню в: ../data/system.txt Теоретически кто-то может набрать (url)/data/system.txt в своем браузере и увидетьфайл данных в виде простого текста, который до сих пор не имел значения .

Но теперь я хочу хранить пароли , чтобы различные группы могли войти в систему и увидеть различную информацию,Эти сайты будут " низкопроцентными " и " низкопрофильными " сайтами, и если кому-то достаточно скучно взломать сайт и увидеть информацию, это не конец света, япросто хочу предоставить несколько технических препятствий , чтобы сайт мог иметь индивидуальные и групповые права доступа при сохранении простоты создания, например, 50 таких сайтов без необходимости настройки и обслуживания50 баз данных.

Мой вопрос: как лучше всего защитить эти текстовые файлы на Apache?

Я могу подумать о следующем:

1) изменить каталог "../data" на какое-то случайное имя каталога , например, "../data928374928374" в качестве некой запутывающей меры

2) измените файл .txt на .php и защитите текст с помощью PHP-кода следующим образом:

<?php
echo 'access denied';
die;
/*
...store data here...
*/
?>

3) вставьте .htaccess файл в каталоге / data для защиты файлов с расширением .txt и другими окончаниями:

<FilesMatch "\.(sqlite|xml|txt|csv|php)$">
Deny from all
</FilesMatch>

HerВот мои мысли по этому поводу:

1) Я могу представить, что есть способов узнать имена скрытых каталогов на таких серверах, как это, это правда?

2* Это неловко иметь текстовый файл с именем .php и иметь в нем PHP-код, так как я хочу, чтобы неопытные люди могли редактировать текстовые файлы и просто удалять их как есть в каталоге данныхи заставьте их работать, без необходимости «редактировать их с помощью технического кода». Не говоря уже о том, что это испортит синтаксическую раскраску в большинстве редакторов.

3) Будет ли это.htaccess файл работает на ВСЕХ серверах> например, если я просто скопирую веб-сайт как есть на любой сервер Apache, я гарантирую, что файлы будут защищены, или есть другие параметры, которые могут отключить эффект файлов .htaccess на Apacheсерверы?

Ответы [ 3 ]

4 голосов
/ 28 сентября 2010
  1. Для этого потребуется проверка грубой силы, но да.
  2. Правда, это усложняет жизнь людям, не имеющим технических навыков.Кроме того, я думаю, что вы не сможете делать все, что хотите.
  3. .htaccess правила будут работать только для сервера Apache, где каталогу разрешено использовать правила htaccess (и позволяет переопределять параметры, если это требуется),Также обратите внимание, что в некоторых конфигурациях файл может называться не .htaccess, а как-то иначе.

Вы также можете использовать SQLite или что-то подобное, что на самом деле не требует сервера базы данных.

Другая идея заключается в том, чтобы иметь такую ​​структуру, как

/app
   /public_html
   /data

, и public_html содержать ваш веб-сайт, который открыт для внешнего мира и / данные не доступны (только для ваших сценариев).

ВВ папке / app вы можете создать правило htaccess, которое всегда будет перенаправлять все запросы в папку punlic_html, чтобы она не была видна внешнему пользователю (это можно сделать негласно).И если обе папки являются копиями, включая файл .htaccess, этого должно быть достаточно для одношагового развертывания

0 голосов
/ 28 сентября 2010

Если это файл, предназначенный только для чтения на PHP, тогда довольно просто, если у вас есть хороший хост.

Большую часть времени ваш веб-корень не принадлежит серверу.

Например, на моем хосте путь к веб-каталогу / data / domain / www / - это путь к http://www.domain.com/ в браузере.

Но я могу создать папку ниже этого уровня, например, / data / domain / secret_folder /, которая не доступна браузеру, но может быть прочитана PHP, если она находится на том же сервере, благодаря fopen

0 голосов
/ 28 сентября 2010

Хранить файлы, содержащие что-либо чувствительное вне дерева htdocs?

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