Знакомый на днях в метрике поймал такое зеркало. Набросал на 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т.р.
А лучше знать и (Symfony || Laravel) && Yii. У них разные парадигмы.
Зачем советуете Zend?:) Огромный неповоротливый монстр который тащит все, на все случаи жизни. Да и код с ним слишком многословен.
Рамарио, тут зависит от ваших целей. У Yii на самом деле порог вхождения ниже. Но это не делает его хуже. Если цель написать свой велосипед, то это тоже опыт. Цель начать быстро делать сайты - фреймворк.
Просто написав свое, а потом начав изучать фреймворки вы поймете, что применяли те же паттерны проектирования и использовали такие же решения. А до некоторых возможно и не додумались. Но никто не отменяет того, что вы напишите что-то более гениальное. Фреймворки ведь как-то появляются:)
Рекомендую еще почитать про паттерны проектирования. Все равно будете их изобретать заново, а зная, уже начнете ими оперировать.
Sitealert, Раз понимаете, зачем приводите код который заведомо перезагрузит все ресурсы на странице + содержит трудно диагностируемую ошибку?
Я верю в многолетний опыт, там где можно копнуть пару раз лопатой, не стоит гнать бульдозер.
Про универсальность я и не писал, читайте внимательнее - самый простой вариант.
Давайте на чистоту, ваша портянка технически неверна - моя не кроссбраузерна. Но обе под ТЗ подходят (находят слово). А что выбрать, дело за ТС.
Это тоже из жизненного опыта, спорщики любят затирать свои сообщения. Не поймите привратно, просто страховка. Я конечно ваше замечание учту и еще раз перечитаю правила форума/раздела.
<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) } }
Вы хоть понимаете что:
Не стоит журить за jquery, я его вообще в разработке не использую. Подключил только ради того, чтобы такой портянки не было.
Sitealert, Ну ТС пока молчит. А привести в кросс-браузерный вид не проблема. Я привык писать на ES6 - ES7. Набросал ради любопытства.
Полагаю претензии тут не уместны. Если вам очень нужно - доработайте под себя, вы вроде разработчик.---------- Добавлено 03.02.2017 в 20:08 ----------Firefox 51.0.1, работает. В нем и хроме я проверял сразу.
Да, конечно. Только нет гарантий что будет работать во всех браузерах.
Процитирую ТС:)
Ну да не суть, вы конечно же правы.
Вы ТЗ читали?
А пример смотрели? https://jsfiddle.net/asa6hzqy/
Тегами, я имел ввиду <b>разбит</b> текст. Остальное прекрасно ищется.
С документом ТС эта реализация прекрасно работает. Берет текст из хеша, рекурсивно пробегается по тегам, если находит текст - скролит до тега содержащий этот текст.