Supervisork: что касается твоего случая, то, похоже, у тебя только 1 файл и нужно подсчитывать. Стало быть, можно сделать так:
<?php
header("location: ../file/price.xls");
$file=fopen("price.txt","a+");
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
}
?>
Supervisork добавил 13.07.2009 в 21:11 но... посетитель может просто пойти по ссылке http://сайт/file/price.xls и тогда ты не все закачки учтешь :)
у меня, например, скачать шрифты в обход счетчика нельзя :)
Вот, например, http://site3k.net/fonts/fonts2.rar реальный адрес одного из архивов со шрифтами. Попробуй скачать шрифт не по ссылке на странице моего сайта :)
netwind: Имеете ввиду без использования параметров передаваемых в переменной $_GET ?
В общем случае тот скрипт безопаснее, на который хакер имеет меньше способов воздействия. Типа да, лучше без GET.
Только ваш скрипт вообще нерабочий, похоже.
if ($do==1 ) {
окуда переменная $do выставляется?
netwind: Конечно, лучше без параметров вообще.
Но нет смысла искать проблемы там где и нет. Заниматься аудитом скрипта при украденом пароле от FTP - это полная ерунда.
Сегодня нашел вариант вышеизложенного счетчика - работает без GET запроса
- начитавшись всякого по безопасности пришел к сомнинию как счетчик лучше - с GET или без?
Подскажите пожалуйста.
Спасиб.
Счетчик counter.php
<?php
if ($do==1 ) {
header("location: http://www.marinedictionary.ru/tos_top.png"); //Это файл, который нужно скачать
//после этой функции браузер пользователя перенаправляется на указанную страницу и прекращает работу с этим скриптом, скрипт завершает работу как ни в чем ни бывало
$file=fopen("1.txt","a+"); //Открытие
flock($file,LOCK_EX); //Блокировка
$count=fread($file,100); //Чтение
$count++; // Увеличение значение на 1
ftruncate($file,0); // Очищаем файл
fwrite($file,$count); //Записываем новое значение
flock($file,LOCK_UN); //Разблокируем
fclose($file); //Закрываем
}?>
wolfston: помоему этого более чем достаточно чтобы запрететить запуск любых файлов и листание каталогов что ниже
Угу.. тоже так думал а потом почитал хабр и друие форумы и понял что нуно
"что-то еще туда дописать"..
converse19880604: Для админки, на мой взгляд, лучше написать на пхп проверку пароля и логина, а пароли и логины хранить в бд, потом проще их редактировать будет, но в прочем и в аштпасвд не сложно но это моё ИМХО:)
В базе хранить пока не могу - цмска хранит пароли в файле а опыта по работе с базами и
скриптами не оч большой. Поэтому скприпт-страничка для авторизации закрыта еще и череpз .htpasswd .
bb-support: но если пхп как модуль апача, то скрипты работают не от оунера файлов, а от апача, так что придётся еще поставить права так, чтобы апач мог в него писать.
- вот про это немного не понял. от чего работают не знаю :) точнее не понял "вопроса"
index.php , counter.php , couter.txt такие и есть как описал. находятся в отельной папке. кроме как внешней ссылкой на скачивание и самим файлом никак не связаны...
netwind:
А логи нужно смотреть от FTP. В index.php сейчас что попало "стучится" в надежде непонятно на что.
- в фтп логах исмотрел - сохоранил логи когда вирус атаковал :).. мдя он там по всем индексам проходился :) ... да и не только по ним...
netwind: Слишком маленький скрипт и вообще не взаимодействует с внешним миром, чтобы тут можно было найти нетривиальную дырку.
Запросите у хостера лог подключений и работы с ftp лучше.
Спасибо.
То есть скрипт достаточно защищен :) ?
Посмотрел логи - вирус вроде стучался в файл index.php - в том в котором идет вывод
содержимого текстового файла.
Интересно: какие права CHMOD лучше поставить:
на
- index.php(брет цифры из текстового файла и выводит )
что касается твоего случая, то, похоже, у тебя только 1 файл и нужно подсчитывать. Стало быть, можно сделать так:
<?php
header("location: ../file/price.xls");
$file=fopen("price.txt","a+");
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
}
?>
Supervisork добавил 13.07.2009 в 21:11
но... посетитель может просто пойти по ссылке http://сайт/file/price.xls и тогда ты не все закачки учтешь :)
у меня, например, скачать шрифты в обход счетчика нельзя :)
Вот, например, http://site3k.net/fonts/fonts2.rar реальный адрес одного из архивов со шрифтами. Попробуй скачать шрифт не по ссылке на странице моего сайта :)
Спасибо за пример.
Да на одном сайте скачка на один файл
На втором 3.. :(
Наверно ваш пример построен на модреврайте?
В таком случае скрипт можно вызвать с пареметром http://site.ru/counter.php?do=(какой-нить страшный код) и все накроется (если, конечно, регистрглобал позволит). Аналогично с GET. Хочешь узнать о безопасности, читай Формы и безопасность вашего сайта
Вот оно как 😒🙅 - теперь даже не пойму что делать...
Счетчик вроде простой а дырка и в нем может быть... блин :(
За ссылочку спасибо. Обязательно прочту но не сейчас - просто времени не хватает
Так на каком же варианте остановится 😂...
это не должно работать на современном хостинге с настройкой register_globals = off
на современном - там отключена данная директива register_globals = off ?
Имеете ввиду без использования параметров передаваемых в переменной $_GET ?
В общем случае тот скрипт безопаснее, на который хакер имеет меньше способов воздействия. Типа да, лучше без GET.
Только ваш скрипт вообще нерабочий, похоже.
if ($do==1 ) {
окуда переменная $do выставляется?
из описания к счетчику $do берется из ссылки:
Конечно, лучше без параметров вообще.
Но нет смысла искать проблемы там где и нет. Заниматься аудитом скрипта при украденом пароле от FTP - это полная ерунда.
нет... ну парольчик то первым делом уже скрыт 🙄
продолжаю дальше узнавать и закрывать дырочки
Значит лучше вариант без GET ?
Привет.
Сегодня нашел вариант вышеизложенного счетчика - работает без GET запроса
- начитавшись всякого по безопасности пришел к сомнинию как счетчик лучше - с GET или без?
Подскажите пожалуйста.
Спасиб.
Счетчик counter.php
помоему этого более чем достаточно чтобы запрететить запуск любых файлов и листание каталогов что ниже
Угу.. тоже так думал а потом почитал хабр и друие форумы и понял что нуно
"что-то еще туда дописать"..
Для админки, на мой взгляд, лучше написать на пхп проверку пароля и логина, а пароли и логины хранить в бд, потом проще их редактировать будет, но в прочем и в аштпасвд не сложно но это моё ИМХО:)
В базе хранить пока не могу - цмска хранит пароли в файле а опыта по работе с базами и
скриптами не оч большой. Поэтому скприпт-страничка для авторизации закрыта еще и череpз .htpasswd .
Извините - повторюсь с вопросом:
что в нижеприведенных директивах лишнее/является дублем который можно удалить
(списки расширений php .cgi .pl .fcgi .fpl .phtml могут отличатся)
но если пхп как модуль апача, то скрипты работают не от оунера файлов, а от апача, так что придётся еще поставить права так, чтобы апач мог в него писать.
- вот про это немного не понял. от чего работают не знаю :) точнее не понял "вопроса"
index.php , counter.php , couter.txt такие и есть как описал. находятся в отельной папке. кроме как внешней ссылкой на скачивание и самим файлом никак не связаны...
А логи нужно смотреть от FTP. В index.php сейчас что попало "стучится" в надежде непонятно на что.
- в фтп логах исмотрел - сохоранил логи когда вирус атаковал :).. мдя он там по всем индексам проходился :) ... да и не только по ним...
Слишком маленький скрипт и вообще не взаимодействует с внешним миром, чтобы тут можно было найти нетривиальную дырку.
Запросите у хостера лог подключений и работы с ftp лучше.
Спасибо.
То есть скрипт достаточно защищен :) ?
Посмотрел логи - вирус вроде стучался в файл index.php - в том в котором идет вывод
содержимого текстового файла.
Интересно: какие права CHMOD лучше поставить:
на
- index.php(брет цифры из текстового файла и выводит )
и
- на сам текстовой файл(запись данных из щечика)