2016-02-24 2 views
0

Я создал сайт, который в основном основан на HTML и JS. Тем не менее, у меня есть несколько файлов PHP, которые вызывается JS для получения информации из большого файла JSON, который в настоящее время находится в общей папке на сервере.Предотвращение доступа к файлам в общей папке

Я пытаюсь запретить кому-либо напрямую обращаться к файлу JSON, позволяя файлам PHP обращаться к файлу JSON. Для того, чтобы сделать это, я создал свой файл .htaccess, как например:

#<Files database.json> 
#Order Allow,Deny 
#Deny from all 
#</Files> 

В тестировании и от того, что я прочитал (или, еще лучше, прочитал и понял) онлайн, это похоже на работу. Тем не менее, я хотел убедиться: я оставляю открытую дырку для кого-то, чтобы получить доступ к json-файлу?

+1

http://stackoverflow.com/questions/1218964/give-no-one-access-in-a-directory-htaccess –

+1

Да. Но до тех пор, пока вы удалите все '#'. Это комментирует код, чтобы он не выполнялся. Стоит отметить, что это просто прекращает доступ Apache к файлу JSON. Также стоит отметить, что было бы лучше хранить файл 'JSON' ** вне ** каталога' public', где ваши данные будут обслуживаться, так как вы можете перемещать файловую систему вверх, чтобы добраться до нее самостоятельно, но веб-пользователь не сможет. – Ohgodwhy

ответ

0

Вы не можете этого сделать. Запрос JSON - это http-запрос, сделанный simulateneusly. Поэтому, если вы не можете получить доступ, JS не может получить к нему доступ, поскольку это язык программирования на стороне клиента.

+0

Возможно, я был неясно, но это не мои файлы JS, которые обращаются к файлу JSON, это файлы PHP, которые вы делаете именно по той причине, которую вы описываете. – kosher

+1

Таким образом вы просто удаляете # infront строк, потому что теперь он прокомментирован, и он не будет работать. – Kociboss

+0

Кроме того, вы можете настроить локальный IP-адрес, чтобы получить доступ к этому: Отклонить от всех Разрешить с помощью 192. *. *. * # Какой бы ваш IP-адрес – Kociboss