За последние 24 часа нас посетили 18036 программистов и 1654 робота. Сейчас ищут 1146 программистов ...

Запрет чтения из .dat файла

Тема в разделе "Решения, алгоритмы", создана пользователем SIR2100, 21 ноя 2012.

  1. SIR2100

    SIR2100 Активный пользователь

    С нами с:
    16 ноя 2012
    Сообщения:
    19
    Симпатии:
    0
    У меня есть dat файл, доступ к которому нужно запретить напрямую. Но скрипт должен иметь доступ к файлу. Как реализовать?
    Т.е. по адресу http://site.ru/data.dat должен быть недоступен. А когда его использует скрипт - доступен.
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    .htaccess как вариант
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    вынести файл за пределы documentroot
     
  4. SIR2100

    SIR2100 Активный пользователь

    С нами с:
    16 ноя 2012
    Сообщения:
    19
    Симпатии:
    0
    Пацаны ваще ребята! Спасибо огромное, добро тебе в карму))

    Добавлено спустя 54 секунды:
    А как к нему потом доступ осуществлять? '../../' - так что ли?
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    нет, так
    /var/my/file.dat
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    да по всякому можно.
    к примеру
    /home/user12345/public_html/protected/ - это наша безопасная кладовка
    /home/user12345/public_html/www/index.php - это точка входа на наш сайт
    /home/user12345/public_html/www/include/xxx.php - это что-то, что подключается )))

    index.php может быть такой:
    Код (PHP):
    1. <?php
    2.  
    3. define('PROTECTED_DIR', '../protected/');
    4. define('SITE_DIR', './');
    5.  
    6. include SITE_DIR . 'include/xxx.php'; // все include и require будем делать через эту константу
    7.  

    include/xxx.php
    Код (PHP):
    1. <?php
    2.  
    3. if (!defined('SITE_DIR')) die('Someone trying to call it directly'); // как бы защита от прямого обращения
    4.  
    5. readfile(PROTECTED_DIR . 'sample.txt'); // использование файла, который недоступен для чтения по http
    6.  
     
  7. Gold Dragon

    Gold Dragon Активный пользователь

    С нами с:
    30 сен 2012
    Сообщения:
    306
    Симпатии:
    2
    Адрес:
    Тамбов
    я что-то малость не понял.. а просто выставить на него права не поможет разве?
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Права? Apache и PHP работают из-под одного и того же пользователя. Правами ты их доступ не разделишь.

    Добавлено спустя 1 минуту 28 секунд:
    Gold Dragon, вчитайся в это и если не передумаешь — напиши что ты имел в виду.
     
  9. Gold Dragon

    Gold Dragon Активный пользователь

    С нами с:
    30 сен 2012
    Сообщения:
    306
    Симпатии:
    2
    Адрес:
    Тамбов
    artoodetoo, ты прав.. малость не подумал