karpo518

Рейтинг
49
Регистрация
13.07.2014
Дмитрий Громов:
Напишите мне, пожалуйста, в ЛС ваши контактные данные (ФИО, телефон и Email), уточню у коллег статус вашей заявки и вернусь с ответом.

Написал в лс

neoks, спасибо за помощь. Я всё-таки докопался до истины. Wordpress пропускал url через заменялку спец-символов на html-сущности. В результате & заменялся на & Странно, что это вообще повлияло на результат. На мой взгляд, nginx должен проглатывать такой символ корректно. Вобщем-то я отключил это преобразование, и всё заработало как надо.

Осталось отключить проверку для ПС. Мой код ниже будет корректно отвечать поисковым ботам и запросам от яндекс.видео?

location ~ \.mp4$ {

mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;

if ($http_referer ~* '(yandex|google|bing|mail|rambler)') {
break;
}

if ($http_user_agent ~* '(yandex|google|bing|mail|rambler)') {
break;
}

secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr suka24.com";

if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }

}

neoks, я только что попробовал ваш вариант как есть и быстро всё откатил. 403-й отклик для всех видео. Для чистоты эксперимента отключил VPN, хотя вообще влиять не должно. Как продебажить проблему?

Изначально я использовал пример отсюда https://gist.github.com/bftanase/cbae1f9fc69bb4f9cb86, поэтому и к вашему скептически отнесся. Не работает, как ни крути

nginx/1.13.12
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

neoks, мой изначальный вопрос

Можете подсказать, как увидеть глазами сравниваемые строки, чтобы их изучить?

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

Я предоставил вам тестовый пример, который объясняет, что в модуле проблема со сравнением строк на самом примитивном уровне. Хеш от "test" не совпадает. Зачем пробовать более сложные варианты, если даже такой простой не работает.

neoks, спасибо за ответ. Обратите внимание на свой код. Вы сравниваете $secure_link с пустой строкой и с 0. В этой переменной не может лежать хеш nginx. В ней лежит результат сравнения хешей.

Кроме того, указанным вами способом нельзя вывести строку при запросе media-файла. Заголовки mp4 не позволяют браузеру показать строку. Он выводит пустой видео плеер.

Я всё-таки решил изменить одну строку в плагине и включить secure_link с игнором проверки для referer яндекса. Но никак не могу корректно настроить nginx. Он отдает мне 403-ий статус, то есть проверка соответствия хешей выполняется неудачно.

        location ~ \.mp4$ {
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;

secure_link $arg_md5,$arg_expires;
secure_link_md5 "test";

if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}

function buildSecureLink($url, $secret, $ttl = 10000)
{

$userIp = $_SERVER['REMOTE_ADDR'];


$parts = parse_url($url);
$path = $parts['path'];

$expires = time() + $ttl;
$md5 = md5("test",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;
}

Можете подсказать, как увидеть глазами сравниваемые строки, чтобы их изучить? Получаю хеш из nginx командой

echo -n 'test' |     openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =

И вижу, что он идентичен тому, что в ссылке. Почему же отклик 403?

Деточка, "учитывать словоформы" и "разный порядок слов" - это разные (несовместимые при нынешнем Королеве) модификации ключа. И перестановка слов (сейчас) дает разную выдачу.

Что значит не совместимые? Я использую данную настройку для оценки конкурентности запросов. Если при оценки конкурентности запроса "а б в", я вижу в выдаче результат, у которого в title "в б а", то я должен не учитывать этот случай при вычислении конкурентности? Не согласен. А вот для проверки позиций целевых сайтов использовать key collector не разумно.

Если ты этого не знаешь, то гнать тебя надо из профессии, дно, чтобы не портил реноме и не говнявил нормальным поцыкам жизнь

Ничего не перепутал? Из какой профессии? Раз в год собираю ключи для личных проектов. Ах да, в свободное от работы время. Ну и желчи в тебе. Смотри не лопни.

---------- Добавлено 19.05.2018 в 21:02 ----------

Ребята , где хорошие прокси купить можно? Пробовал proxy-sale.com и proxy-seller.ru. Оба показали себя не лучшим образом. В частности, при сборе выдачи Google очень много капчей и блокировок.

Заказал сегодня 3 прокси для KC. Ни ответа - ни привета. Хорошо, что больше не стал покупать

В поисковой выдаче key collector находит меньше вхождений ключей чем есть на самом деле. Раньше была настройка что-то вроде "Учитывать словоформы", которая позволяла учитывать произвольный порядок слов в ключевой фразе. Сейчас не нахожу эту настройку. Она есть?

Для VDS есть вот такой вариант

/ru/forum/991679

Не знаю, разрешается ли этот заголовок на обычных хостингах. Скорее всего для страниц получится прописать в htaccess, а вот для видео не получится

Всего: 93