Есть роутер Mikrotic, к нему подключаются пользователи по wi-fi. Требуется показывать рекламное сообщение на просматриваемых страницах.
Данная задача была решена на некоторых других роутерах. Схема выглядела следующим образом:
Устанавливается прошивка dd-wrt, роутер весь http трафик посылает на proxy сервер (squid или Privoxy), который установлен (либо на vpn, либо на локальном сервере, либо) на самом роутере. Proxy в свою очередь ищет
<head>
и заменяет его на
<head><script>.....</script>
и обратно отдает уже измененную страницу пользователю. Таким образом на все страницы пользователя вставлен js код (Content (js) injection). А показ сообщения уже настраиваем в js, который может быть на любом хостинге.
Основной идей является возможность держать squid или Privoxy непосредственно на роутере (не требуются затраты на vpn, всего то перепрошить/перенастроить роутер).
Все бы хорошо, но dd-wrt на Mikrotic не поставить, да и не хочется.
На хабре была статья о реализации, но там идея была в том, что Mikrotic весь трафик заворачивал на удаленный прокси, а него тратится не вариант.
в документации не смог разобраться, на вики микротика по прокси (
wiki.mikrotik.com/wiki/Manual:IP/Proxy ) есть вот такие параметры:
rx-header - receiving HTTP header
tx-body - transmitting HTTP body to the client
tx-eof - writing chunk-end (when converting to chunked response)
tx-header - transmitting HTTP header to the client
это наталкивает на мысль, может можно как то указать rx-header (< head>) и tx-header (< head>< script>.....< /script>)
Если все верно, знать бы синтаксис.
P.S. на просторах всемирной паутины был найден один не многословный комментарий: "If your using MikroTik for your router it can do that
its in hotspot/user profiles"
P.P.S. Можно сделать не с помощью js, а iframe (в одном реклама, в другом контент), но путь решения не должен измениться.