примитивный обработчик форм, запись в файл

Тема в разделе "PHP", создана пользователем doxx, 29 янв 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. doxx

    doxx |||llll|||||llll|||

    Регистр.:
    18 фев 2009
    Сообщения:
    1.059
    Симпатии:
    212
    в общем есть оочень простой скрипт из трех строк,
    берет данные из введенных форм, и пишет их в файл.
    однако стоит посмотреть исходный код, и по путю понятно где файл лежит, и можно тут же его открыть и посмотреть.

    Как сделать так, чтобы этот файл нельзя было смотреть?,
    Самый -самый простой и надежный вариант..
     
  2. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Путь к файлу в любом случае придется где-то хранить, увы. Ты его можешь объявить константой и перенести из этого скрипта в другой, какой-нибудь там config.php - и его autoinclude'ить, но все равно это до конца проблему не решит - можно будет точно так же его посмотреть в том config.php. Хотя сам config.php можно засунуть куда угодно и обозвать как угодно, так что какая-никакая защита есть. Это раз.

    Второй вариант - поставить на серваке Zend и зазендить твой мега-скрипт из трех строк. В принципе тоже имеет право на жизнь. Но тоже ненадежно, выковырять имя файла по-прежнему можно.

    Третий вариант - не забивать себе голову. У всех пути к файлам хранятся в скриптах, и пароли к базе, и вообще много интересного. И ничего, живут. Просто базу надо закрывать от внешних IP, файл с данными класть куда-то снаружи от htdocs или хотя бы закрывать через .htaccess - чтоб его нельзя было стянуть по http. Ну и т.д. А прятать сам путь к файлу - это изврат, security by obscurity, как говорят академические дядьки.
     
  3. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    144
    Симпатии:
    107
    PHP:
    function qwerty($arr) { $cnt count($arr); for($i=0$i<$cnt$i++) { $hrm .= chr($arr[$i]); } return $hrm; }
    $svf qwerty(array(102,111,108,100,101,114,47,109,121,102,105,108,101,46,116,120,116)); //folder/myfile.txt
    //+ это дело можно сжать всевозможными способами + заенкодить + зазендить/заенкубить + спрятать в трусах КатиПушкаревой))
    //надежно спрятать не получится, только попытаться перехитрить кульхацкеров
     
  4. doxx

    doxx |||llll|||||llll|||

    Регистр.:
    18 фев 2009
    Сообщения:
    1.059
    Симпатии:
    212
    ну пусть не сам путь а чисто файл, чтобы не смогли левые люди его просмотреть..

    Mr.Emm спасибо, что делает этот скрипт и куда его вставлять? я пхп увы не знаю..

    У меня 3 файла:
    index.html -где форма
    111.php - сам скрипт
    PHP:
    <?php
    $fp 
    fopen('log.txt''a');
    fwrite($fp'имя:'.$_POST['name']."\n".'мессага:'.$_POST['mess']."\r\n");
    fclose($fp);
    echo 
    "Send";
    ?>
    и файл лога, куда пишутся данные, которые нужно скрыть от лишних глаз..
     
  5. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Пиши в .htaccess
    Код:
    RewriteRule ^log\.txt$  - [NS,F]
    
    и все, твой лог сокрыт от посторонних глаз.


    А лучше не
    PHP:
    $fp fopen('log.txt''a'); 
    а
    PHP:
    $fp fopen('../private_html/log.txt''a'); 
    т.е. держи лог-файл не рядом со скриптом, а где-то снаружи от htdocs - и тогда апач не будет иметь к нему доступа вообще. И в htaccess соответственно тоже тогда ничего не надо будет прописывать.
     
  6. wwwl

    wwwl Создатель

    Регистр.:
    10 фев 2010
    Сообщения:
    13
    Симпатии:
    0
    а если инклудить этот файлик?
     
  7. Vovochka

    Vovochka Создатель

    Регистр.:
    14 янв 2008
    Сообщения:
    25
    Симпатии:
    3
    log.php

    <?php
    echo 'доступ закрыт!';

    // вася пупкин
    // васичкин коля
    ?>
     
  8. nimnul

    nimnul Создатель

    Регистр.:
    24 мар 2008
    Сообщения:
    15
    Симпатии:
    4
    venetu дело говорит ;)
    Добавлю только, что вместо Rewrite в .htaccess можно использовать такую конструкцию:
    Код:
    <Files log.txt>
      Order allow,deny
      Deny from all
    </Files>
    
    Также, как вариант, если всё-таки хочется самому стягивать лог по http, можно закрыть его паролем при помощи Basic Authentication.
     
  9. Flock

    Flock Постоялец

    Регистр.:
    16 июн 2007
    Сообщения:
    142
    Симпатии:
    44
    Поищи реализацию любого алгоритма шифрования на php(пример) и вынеси файл за пределы видимости apache. Это тебя спасет и как от взлома всего сервака, так и конкретно твоего сайта. Конечно ключ можно будет посмотреть в коде ))
     
Статус темы:
Закрыта.