Прямой доступ и cURL
Вобщем так. В целях тренировки забабахал небольшой сайтик. Сервер - Дебиан Етч + LAMP. Все происходит с помощью Ajax и PHP. Клиент посылает запрос на сервер с помощью XmlHttpRequest, сервак обращается к разнам сторонним сайтам за инфой с помощью cURL и возвращает нужные данные в формате JSON. Клиент все это безобразие показывает в таблице. Все это выучено и сделано за несколько дней (это я к тому, что мало этим занимался).
Вопрос первый.
Сервер обрабатывает результат запроса cURL (т.е. страницу с другого сайта), как стринг. Т.е., если мне нужен определенный текст на странице, я банально нахожу примерную его ориентировку и спомощью скрипта вытаскиваю его. Скрипт этот получает 3 стринга - начальный, конечный и оригинальный текст и возвращает array стрингов, которые находятся между первым и вторым в оригинальном тексте.
Есть ли более простой способ выдирать данные с HTML страницы? Вроде есть что-то вроде поиска по тегам...
Вопрос второй.
Как запретить прямой доступ к файлам? Например, если я не хочу, что бы кто-то мог посмотреть файлы .js и .css .
Вопрос третий.
Относится ко второму. На данный момент, настройки доступа к MySQL находятся в открытом виде в .php файле. Насколько я понимаю (и пробовал) к ним прямого доступа нет (или я ошибаюсь?). В любом случае, как стоит хранить эти настройки?
Заранее спасибо!
2. Нельзя.
3. Доступ зависит от настроек на серваке, от местарасположения файла, от .htaccess'а и от самого РНР-скрипта.
Можно сделать так, например. В файле, вкотором инклюдится этот РНР-скрипт, перед самим include написать типа DEFINE('BUGAGA',true); А файле, который инклюдистя написать вначале:
if (!defined('BUGAGA')) die('Illegal File Access');. Получается, что если мы заходтим поюзать запроещенный файл, то сначала будет проверка, не задекларирована ли переменная BUGAGA. Если нет - выходим. Если мы будем осуществлять доступ из другого скрипта, то он сначала декларирует переменную, а потом инклюдит скрипт, который в последствии даст добро.
Цитата: SkyM@n
1. Как я понял, то возвращаемые данные - ХТМЛ. Тогда юзай DOM API, если этот модуль подключен.
ясно, будем копать.
Цитата: SkyM@n
2. Нельзя.
жаль. хотя я так и думал.
Цитата: SkyM@n
3. Доступ зависит от настроек на серваке, от местарасположения файла, от .htaccess'а и от самого РНР-скрипта.
Можно сделать так, например. В файле, вкотором инклюдится этот РНР-скрипт, перед самим include написать типа DEFINE('BUGAGA',true); А файле, который инклюдистя написать вначале:
if (!defined('BUGAGA')) die('Illegal File Access');. Получается, что если мы заходтим поюзать запроещенный файл, то сначала будет проверка, не задекларирована ли переменная BUGAGA. Если нет - выходим. Если мы будем осуществлять доступ из другого скрипта, то он сначала декларирует переменную, а потом инклюдит скрипт, который в последствии даст добро.
согласен, это не даст заходить на некоторые линки напрямую, но я имел ввиду закачку файлов. даст ли сервер юзеру скачать ПХП файл? или тот сможет только увидеть результат выполнения этого файла? по крайней мере, это то, что получилось у меня на моем серваке. я скачал один из ПХП файлов, но внутри оказалась только ошибка (этот файл должен был получать параметры через GET).
насколько я понял, запретить закачку файлов можно через htaccess? если так, то нельзя ли объяснить как? и хватит ли этого, чтобы хранить настройки доступа к БД в файле на этом серваке, или это делается по другому?
Цитата: Free Thinker
даст ли сервер юзеру скачать ПХП файл?
Конечно не даст:
Цитата:
тот сможет только увидеть результат выполнения этого файла
ясно.
все же, как предпочтительней хранить настройки доступа к БД?
Как тебе угодно.т Кто-то хранит эти данные в файле конфига выше директории веб сервера, кто-то в директориях веб сервера как есть виде PHP скрипта, кто-то в директории веб сервера, но закрывает эту диру базовой HTTP аутоидентификацией.
Вот, отпостил, ввиду того, что этот вопрос возникает часто: