Задать вопрос
kpodyganov
@kpodyganov
Увлекаюсь фронтенд-разработкой

Как защитить php файл от пользователей?

Можно ли защитить сайт от посещения ненужных файлов пользователем. Например, есть два файла, index.php и config.php, как запретить доступ к config.php?
  • Вопрос задан
  • 645 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
Смотря что содержится в config.php. Если он выполняет функцию возвращения массива, например:
<?php
return[
    'host' => 'localhost',
    'dbname' => 'MAYABASA',
    'user' => 'root',
    'password' => ''
];

То ничего скрывать не нужно, пользователь и так не сможет получить содержимое.

Если вы делаете вывод контента по средствам php и получаете содержимое через, например, file_get_contents($url), то в начале файла можно проверять ip адрес с которого поступает запрос. Если запрос делает только ваш сервер, то это может смотреться так:
if ($_SERVER['REMOTE_ADDR'] !== '127.0.0.1') exit();
echo 'Этот контент будет выводиться только для запросов с Ip 127.0.0.1';

Ip вашего сервера не меняется, поэтому способ может быть использован.

Ну и напоследок, есть способ для защиты в .htaccess
RewriteRule ^/?some_path/config\.php$ - [F,L]
Ответ написан
Комментировать
SlavikF
@SlavikF
Есть несколько способов:

1) Самый простой: выкладывать такие файлы там, где пользователь не может их открыть
Например сайт выложен на /var/www/mysite.com/public/
и mysite.com открывает файлы по этому пути

Файлы, которые пользователь не должен открывать ложим вот в /var/www/mysite.com/private/
Теперь пользователь их открыть не сможет, а другие PHP файлы ссылаться на них (include, require...) - смогут.

2) Запретить через конфиг Апача или .htaccess
Про это написано здесь в другом ответе
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Никак не надо защищать.
Найди себе другое, более полезное занятие.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы