как запретить пользователю доступ к папке в php? - PullRequest
0 голосов
/ 11 ноября 2011

Я обыскал все вокруг, но не смог найти все, что я хочу знать, у меня есть папка с именем temp вроде

-> public_html

-> temp

Теперь, как я могу запретить пользователю доступ к нему с внешнего сервера, как будто он выдает ошибку, когда кто-то включает его в свой скрипт php?я хочу сделать это через php, а не через .htaccess или apache, я попробовал chmod, но он ограничивает весь сайт только с локального сервера.я также сделал константу, но если кто-то знает имя константы, он все равно может извлечь данные.

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

htaccess, только так, как я знаю ... не думаю, что это возможно с PHP

<Directory /public_html/temp>
  order allow,deny
  deny from all
</Directory>
1 голос
/ 11 ноября 2011

Вы не можете включить удаленный файл PHP. Если для них allow_furl_open и allow_url_include установлено значение true и используется include('http://yoursite/temp/yourfile.php'), то включается вывод этого файла PHP. Не сам источник PHP.

Итак, когда у вас есть php-файл со следующим содержимым:

<?php
    $password = "secret";
    echo "Test";
?>

И кто-то включит этот файл удаленно, он получит только «Test» обратно, что не соответствует синтаксису PHP. Они не смогут видеть содержимое файла, только то, что выводится. Файл запускается на удаленном (или в данном случае на вашем) сервере. Кто бы его ни включил, он получает вывод после выполнения на этом сервере.

Так что вам не нужно делать что-то вроде if (!isset(some_magical_constant)) die("Go away!"), это просто глупо, но, к сожалению, я видел это по всей сети.

0 голосов
/ 11 ноября 2011

Поместите пустой файл «index.html» в папку «temp».Это предотвращает просмотр содержимого этой папки пользователем.Что, в основном, делает невозможным для пользователей работать с ним.

Что касается включения его в сценарий, люди должны знать, какие в нем файлы, чтобы использовать его в сценарии.

...