blacks

Рейтинг
69
Регистрация
04.12.2008
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 реальный адрес одного из архивов со шрифтами. Попробуй скачать шрифт не по ссылке на странице моего сайта :)

Спасибо за пример.

Да на одном сайте скачка на один файл

На втором 3.. :(

Наверно ваш пример построен на модреврайте?

Supervisork:
В таком случае скрипт можно вызвать с пареметром http://site.ru/counter.php?do=(какой-нить страшный код) и все накроется (если, конечно, регистрглобал позволит). Аналогично с GET. Хочешь узнать о безопасности, читай Формы и безопасность вашего сайта

Вот оно как 😒🙅 - теперь даже не пойму что делать...

Счетчик вроде простой а дырка и в нем может быть... блин :(

За ссылочку спасибо. Обязательно прочту но не сейчас - просто времени не хватает

Так на каком же варианте остановится 😂...

netwind:
это не должно работать на современном хостинге с настройкой register_globals = off

на современном - там отключена данная директива register_globals = off ?

netwind:
Имеете ввиду без использования параметров передаваемых в переменной $_GET ?
В общем случае тот скрипт безопаснее, на который хакер имеет меньше способов воздействия. Типа да, лучше без GET.
Только ваш скрипт вообще нерабочий, похоже.
if ($do==1 ) {
окуда переменная $do выставляется?

из описания к счетчику $do берется из ссылки:

<a href="http://site.ru/counter.php?do=1" target="_blank">Ссылка</a>
netwind:
Конечно, лучше без параметров вообще.
Но нет смысла искать проблемы там где и нет. Заниматься аудитом скрипта при украденом пароле от FTP - это полная ерунда.

нет... ну парольчик то первым делом уже скрыт 🙄

продолжаю дальше узнавать и закрывать дырочки

Значит лучше вариант без GET ?

Привет.

Сегодня нашел вариант вышеизложенного счетчика - работает без 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 .

Извините - повторюсь с вопросом:

что в нижеприведенных директивах лишнее/является дублем который можно удалить

(списки расширений php .cgi .pl .fcgi .fpl .phtml могут отличатся)


php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp

# Отключаем PHP.
RemoveType php

<IfModule mod_php4.c>
php_flag engine 0
</IfModule>

<IfModule mod_php5.c>
php_flag engine 0
</IfModule>

# запрет на запуск файлов
RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml

# запрет доступа к файлам
Order Deny, Allow
Deny from all
bb-support:
но если пхп как модуль апача, то скрипты работают не от оунера файлов, а от апача, так что придётся еще поставить права так, чтобы апач мог в него писать.

- вот про это немного не понял. от чего работают не знаю :) точнее не понял "вопроса"

index.php , counter.php , couter.txt такие и есть как описал. находятся в отельной папке. кроме как внешней ссылкой на скачивание и самим файлом никак не связаны...

netwind:

А логи нужно смотреть от FTP. В index.php сейчас что попало "стучится" в надежде непонятно на что.

- в фтп логах исмотрел - сохоранил логи когда вирус атаковал :).. мдя он там по всем индексам проходился :) ... да и не только по ним...

netwind:
Слишком маленький скрипт и вообще не взаимодействует с внешним миром, чтобы тут можно было найти нетривиальную дырку.
Запросите у хостера лог подключений и работы с ftp лучше.

Спасибо.

То есть скрипт достаточно защищен :) ?

Посмотрел логи - вирус вроде стучался в файл index.php - в том в котором идет вывод

содержимого текстового файла.

Интересно: какие права CHMOD лучше поставить:

на

- index.php(брет цифры из текстового файла и выводит )

и

- на сам текстовой файл(запись данных из щечика)

Всего: 135