Показать сообщение отдельно
  #62 (permalink)  
Старый 09.02.2018, 04:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

3) и важное

Почему закрытая папка с запретом на внешний доступ? Потому, что файлы конфигураций, системные/служебные файлы не являются публичными. Если разрешить вызов (значит его запуск) файла current.php браузером, то любой желающий может генерировать запросы к ЦБ, что может закончится плачевно - ЦБ заблокирует доступ к своим ресурсам для вашего сайта.

Можно вообще разрешить доступ к этому сайту только одному домену - сайту который у вас и выводит курс на странице. Это можно сделать также посредством .htaccess, но который будет располагаться в корне документов (еще раз прочесть 1), чтобы вспомнить что это такое). В этом .htaccess можно указать IP сайта который выводит курс. Все. Всем остальным будет отлуп, включая и поисковых роботов, им там тоже делать нечего. Но это для справки и делать не обязательно, просто закроем папку current.

Но нужно выяснить - на хосте будут ли исполняться РНР скрипты из закрытой папки. Это только в техподдержке можно узнать. Если запускаются, то все ОК, и вся структура на сайте будет такая как описано выше. Но если нет, то в папке current будут только два файла: .htaccess и файл с курсами, который будет записывать скрипт - current.json.

А файл current.php придется вынести из папки в корень документов. То есть структура на сервере будет такая:

current
    .htaccess
    current.json
current.php
index.php


Но в этом случае файл current.php становится доступным для внешнего доступа, то есть не проблема его запускать в браузере по адресу http://domain/current.php. Чтобы этого не допустить, в этом случае можно разрешить запуск скрипта в этом файле только если он будет запущен из под командной строки, что и будет в случае запуска его по cron. Для этого код файла current.php немного дополнить, поместив код в условие if(PHP_SAPI == 'cli') { тут код }, о чем я писал ранее. В коде current.php также нужно будет заменить путь записываемого файла, вот эта строка file_put_contents('current.json', должна быть такой - file_put_contents('current/current.json',



При этом для php скриптов доступ к закрытой папке никак не ограничен так как они выполняются от имени владельца.

Понятно что нужно выяснить и что сделать если ...?

Последний раз редактировалось laimas, 09.02.2018 в 05:44.
Ответить с цитированием