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

Статус
В этой теме нельзя размещать новые ответы.

doxx

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

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

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

Третий вариант - не забивать себе голову. У всех пути к файлам хранятся в скриптах, и пароли к базе, и вообще много интересного. И ничего, живут. Просто базу надо закрывать от внешних IP, файл с данными класть куда-то снаружи от htdocs или хотя бы закрывать через .htaccess - чтоб его нельзя было стянуть по http. Ну и т.д. А прятать сам путь к файлу - это изврат, security by obscurity, как говорят академические дядьки.
 
Путь к файлу в любом случае придется где-то хранить, увы. Ты его можешь объявить константой и перенести из этого скрипта в другой, какой-нибудь там config.php - и его autoinclude'ить, но все равно это до конца проблему не решит - можно будет точно так же его посмотреть в том config.php. Хотя сам config.php можно засунуть куда угодно и обозвать как угодно, так что какая-никакая защита есть. Это раз.
Второй вариант - поставить на серваке Zend и зазендить твой мега-скрипт из трех строк. В принципе тоже имеет право на жизнь. Но тоже ненадежно, выковырять имя файла по-прежнему можно.
Третий вариант - не забивать себе голову. У всех пути к файлам хранятся в скриптах, и пароли к базе, и вообще много интересного. И ничего, живут. Просто базу надо закрывать от внешних IP, файл с данными класть куда-то снаружи от htdocs или хотя бы закрывать через .htaccess - чтоб его нельзя было стянуть по http. Ну и т.д. А прятать сам путь к файлу - это изврат, security by obscurity, как говорят академические дядьки.
ну пусть не сам путь а чисто файл, чтобы не смогли левые люди его просмотреть..

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";
?>
и файл лога, куда пишутся данные, которые нужно скрыть от лишних глаз..
 
Пиши в .htaccess
Код:
RewriteRule ^log\.txt$  - [NS,F]
и все, твой лог сокрыт от посторонних глаз.


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

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

// вася пупкин
// васичкин коля
?>
 
venetu дело говорит ;)
Добавлю только, что вместо Rewrite в .htaccess можно использовать такую конструкцию:
Код:
<Files log.txt>
  Order allow,deny
  Deny from all
</Files>
Также, как вариант, если всё-таки хочется самому стягивать лог по http, можно закрыть его паролем при помощи Basic Authentication.
 
Поищи реализацию любого алгоритма шифрования на php(Для просмотра ссылки Войди или Зарегистрируйся) и вынеси файл за пределы видимости apache. Это тебя спасет и как от взлома всего сервака, так и конкретно твоего сайта. Конечно ключ можно будет посмотреть в коде ))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху