demiux

Рейтинг
15
Регистрация
31.01.2017

Знакомый на днях в метрике поймал такое зеркало. Набросал на js редирект на свой домен. js "зашифрован", что бы уж явно в коде не светить свой домен. Пока работает, будем наблюдать.

Вообще моей идей было проверять реферер и домен. Если реферер не пустой, редиректить на свой домен. Т.е. по прямому заходу на зеркало и серфингу по нему редиректа не будет.

Что думаете по этому поводу? Вроде как все боты js уже исполняют.

Самое просто и быстрое решение, модуль нгинкса ngx_http_secure_link_module

В двух словах формируется md5 хэш из: secret_key + remote_addr + uri. Пример ссылки: /video/bunny.m3u8?md5=_e4Nc3iduzkWRm01TBBNYw&expires=2147483647

Так же можно ограничить время жизни.

Тут пример формирования ссылки на PHP

Дальше, как я вам уже писал в соседнем топике, только проксировать через свой сервер. По другому ссылки не скрыть.

Скрыть конечно можно, 302 редиректом на ссылку с облака. Но это так, не защита. Хотя замечал ресурсы использующие этот финт с ушами.

danforth, как то у вас двусмысленно вышло - конструируй авто, но как работают отдельные агрегаты не читай, достаточно знать их названия. Ну подумаешь, заново придумаешь конструкцию ДВС, а может и дизель случайно получится.:)

Не поленился, сделал выборку вакансий на hh по Москве:

Всего, з/п.100-110т.р., з/п.130-140т.р.

  • Yii
  • Symfony
  • Laravel
  • Zend

А лучше знать и (Symfony || Laravel) && Yii. У них разные парадигмы.

Зачем советуете Zend?:) Огромный неповоротливый монстр который тащит все, на все случаи жизни. Да и код с ним слишком многословен.

Рамарио, тут зависит от ваших целей. У Yii на самом деле порог вхождения ниже. Но это не делает его хуже. Если цель написать свой велосипед, то это тоже опыт. Цель начать быстро делать сайты - фреймворк.

Просто написав свое, а потом начав изучать фреймворки вы поймете, что применяли те же паттерны проектирования и использовали такие же решения. А до некоторых возможно и не додумались. Но никто не отменяет того, что вы напишите что-то более гениальное. Фреймворки ведь как-то появляются:)

Рекомендую еще почитать про паттерны проектирования. Все равно будете их изобретать заново, а зная, уже начнете ими оперировать.

Sitealert, Раз понимаете, зачем приводите код который заведомо перезагрузит все ресурсы на странице + содержит трудно диагностируемую ошибку?

Я верю в многолетний опыт, там где можно копнуть пару раз лопатой, не стоит гнать бульдозер.

Про универсальность я и не писал, читайте внимательнее - самый простой вариант.

Давайте на чистоту, ваша портянка технически неверна - моя не кроссбраузерна. Но обе под ТЗ подходят (находят слово). А что выбрать, дело за ТС.

Sitealert:
И ни к чему было мой код в цитату выводить. Экономить надо форумное место, цитировать только существенное.

Это тоже из жизненного опыта, спорщики любят затирать свои сообщения. Не поймите привратно, просто страховка. Я конечно ваше замечание учту и еще раз перечитаю правила форума/раздела.

Sitealert:
Вообще-то, я согласен с мнением товарищей, высказавшихся выше в пользу обработки страницы PHP-скриптом. Это и абсолютно кроссбраузерно, и даёт гораздо больше гибкости в обработке. Но так, для интереса - вот код на чистом JS, без Jquery (а то народ, походу, чистый JS вообще начал забывать :)). Работает даже в старом ИЭ и обеспечивает регистронезависимый поиск со скроллом на искомую строку (функцию позиционирования взял из инета).
Ссылка на страницу вида
<a href="/images/doc/31012017.html?s=архангельск">Санаторий</a>
В конце страницы ссылка на скрипт
var search = decodeURI(window.location.search.substring(3));

var doc = document.body.innerHTML;
var pat = new RegExp(search+'(?=[^<>]*<)', 'ig');
var repl1 = doc.match(pat);

doc = doc.replace(pat, '<span class="found" style="background-color: #ccc">$&</span>');
document.body.innerHTML = doc.replace('class="found"', 'id="found1" class="found"');
var found1 = document.getElementById('found1');
if(found1){
var x = getOffsetRect(found1).left;
var y = getOffsetRect(found1).top;
window.scroll(x,y);
}
function getOffsetRect(elem) {
var box = elem.getBoundingClientRect()
var body = document.body
var docElem = document.documentElement
var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft
var clientTop = docElem.clientTop || body.clientTop || 0
var clientLeft = docElem.clientLeft || body.clientLeft || 0
var top = box.top + scrollTop - clientTop
var left = box.left + scrollLeft - clientLeft
return { top: Math.round(top), left: Math.round(left) }
}

Вы хоть понимаете что:

  • переписываете целиком innerHTML всего документа?
  • регулярка не универсальна и может сделать html код невалидным
  • у ТС явно голый HTML, предлагаете php ставить? А почему не nodjs, python, java и т.д.? Давайте еще CMS навесим, да сервер помощнее... Ради поиска строки то.

Не стоит журить за jquery, я его вообще в разработке не использую. Подключил только ради того, чтобы такой портянки не было.

Sitealert, Ну ТС пока молчит. А привести в кросс-браузерный вид не проблема. Я привык писать на ES6 - ES7. Набросал ради любопытства.

Полагаю претензии тут не уместны. Если вам очень нужно - доработайте под себя, вы вроде разработчик.

---------- Добавлено 03.02.2017 в 20:08 ----------

Firefox 51.0.1, работает. В нем и хроме я проверял сразу.

Sitealert:
А по факту работоспособность проверяли?

Да, конечно. Только нет гарантий что будет работать во всех браузерах.

Stek:
А где то сказано, что там один ssh на униксах. Вот понадобится где нибудь у наймчипа и рег.ру сменить NS, куда там сертификат вводить будете ? :)

Админу надо или доверять или искать нового.

Процитирую ТС:)

Было у него много серверов и логинов\паролей к ним.

Ну да не суть, вы конечно же правы.

ziliboba0213:
Так у ТС текст разбит тегами (у него там вообще таблица), или вы что-то другое имели в виду?

Вы ТЗ читали?

Можно ли сделать ссылку, которая ищет текст

А пример смотрели? https://jsfiddle.net/asa6hzqy/

Тегами, я имел ввиду <b>разбит</b> текст. Остальное прекрасно ищется.

С документом ТС эта реализация прекрасно работает. Берет текст из хеша, рекурсивно пробегается по тегам, если находит текст - скролит до тега содержащий этот текст.

Всего: 102