neoks

neoks
Рейтинг
152
Регистрация
17.03.2010

Putnik, Если IP у доменов разные, то это может быть просто proxy_pass через nginx, так называемый простой клон без заморочек.

Вообще выведите на сайте /ip.php и зайти на этот адрес с алиаса/клона, если покажет ваш IP, значит проблема в хостинге, если нет то это клон, а тот IP который покажет можете смело заносить в черный список.

kxk, Зачем делать свой велосипед, когда есть готовый, например https://portainer.io/overview.html :)

JungleBox, Удаленные вирусы это хорошо, но обновлять движки и модули все равно нужно, а то рано или поздно снова появятся.

Что за напасть, вчера думал брать vps, а сегодня сайт не работает.

http://ping-admin.ru/free_test/result/15296643171y28m3bb53ien88e4047i.html

Нашел сайт hostiman.ru через ПС, понравились тарифные планы на vps.

Думаю пробью отзывы, смотрю и тема на серче есть, даже 53 страницы накатано, начал читать, пролистал пару страниц и не одного отзыва от постояльцев форума, только новореги, как-то не серьезно, пошел искать дальше 😒

Проверяйте uset-agent и ptr, кешируя валидные, так у вас всегда будет актуальный список IP адресов.

Stek:
В конце концов никто не мешает проталкивать контент с рекламой вашего же ресурса - одна польза только.

Вот это действительно нужная вещь, учтивая что контент есть на других сайтах.

Так можно и часть посетителей переманить.

karpo518, В плане кода все правильно, но лучше поставить на недельку логи и смотреть ошибки 403/410, потому что я хз какие там юсерагенты у видео бота и хз какой рефер передается при просмотре ролика с яндекс.видео :)

karpo518, мне кажется проблема не в nginx, а в php

Посмотрите что передается в переменную $url, "/fail.mp4" или "http://domain.ua/fail.mp4" ?

Закинул для теста на сервер, все работает.

http://profi.ngens.ru/secure_link.php

root@:~# php -v
PHP 5.6.33-0+deb8u1 (cli) (built: Jan 5 2018 15:46:26)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

root@:~# nginx -v
nginx version: nginx/1.12.2

<?
function buildSecureLink($url, $secret, $ttl = 10000)
{
$userIp = $_SERVER['REMOTE_ADDR'];
$expires = time() + $ttl;
$md5 = md5($expires.explode('?', $url)[0].$userIp.' '.$secret, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);

if(strpos($url, '?') !== false)
{
return $url . '&md5=' . $md5 . '&expires=' . $expires;
}

return $url . '?md5=' . $md5 . '&expires=' . $expires;
}

echo 'http://profi.ngens.ru' . buildSecureLink('/Chemistry.mp4?arg=1&arg=2', 'secret');
?>


---------- Добавлено 12.06.2018 в 19:00 ----------

Продебажить md5 не получится, но можете сравнить данные которые передаете в md5

NGINX

location ~ \.mp4$ {
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr secret";
return 200 "$secure_link_expires$uri$remote_addr secret";
}

PHP

function buildSecureLink($url, $secret, $ttl = 10000)
{
$userIp = $_SERVER['REMOTE_ADDR'];
$expires = time() + $ttl;

return $expires.explode('?', $url)[0].$userIp.' '.'secret';
}
karpo518:
Можете подсказать, как увидеть глазами сравниваемые строки, чтобы их изучить?

1) secure_link_md5 вывести нельзя, вы можете вывести только переменные которые туда задаете, а потом привести в md5, как выводить переменные я уже писал выше.

2) Что-бы посмотреть ответ в браузере, просто используйте "view-source:http://domain.ua/file.mp4"

karpo518:
Как вы думаете, если secure_link_md5 "test" приводит к 403-ему отклику, то ваш secure_link_md5 "$secure_link_expires$uri$remote_addr secret"; как-то улучшит ситуацию?

Да, хотя-бы потому что $secure_link_expires является обязательным полем в secure_link_md5.

karpo518:
Я предоставил вам тестовый пример, который объясняет, что в модуле проблема со сравнением строк на самом примитивном уровне.

Проблема в неправильном secure_link_md5, а точнее в неправильной комбинации secure_link и secure_link_md5.

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

В последнем посте я дал вам полностью рабочий конфиг nginx и php (из вашего примера).

Всего: 705