Найти в Дзене
show run

Инжект кастомного скрипта в транзитный трафик на оборудовании провайдера

На прошлой неделе Github был опубликован интересный скрипт одного североамериканского оператора связи Comcast, предоставляющего услуги широкополосного доступа в сеть интернет, который он автоматически вставляет в проходящий через его сеть транзитный веб-трафик пользователей. Этот скрипт должен при определённых условиях выводить информационное сообщение для пользователя. Например, если пользователь превысил 90% своего месячного лимита на трафик. Транзитный трафик можно легко модифицировать на стороне провайдера Скрипт состоит из 163 строчек, вот его начало Комментаторы на Github немедленно подвергли обструкции сетевых инженеров из компании Comcast за катастрофически низкое качество кода. Скрипт ужасен по нескольким причинам. Например, он осуществляет бесконечные AJAX-запросы на неправильный URL каждые 5000 миллисекунд при любой открытой веб-странице. Если отображается информационное сообщение для пользователя, то не предусмотрено способов его закрыть, но оно само закроется через пять

На прошлой неделе Github был опубликован интересный скрипт одного североамериканского оператора связи Comcast, предоставляющего услуги широкополосного доступа в сеть интернет, который он автоматически вставляет в проходящий через его сеть транзитный веб-трафик пользователей. Этот скрипт должен при определённых условиях выводить информационное сообщение для пользователя. Например, если пользователь превысил 90% своего месячного лимита на трафик.

Транзитный трафик можно легко модифицировать на стороне провайдера
Транзитный трафик можно легко модифицировать на стороне провайдера

Скрипт состоит из 163 строчек, вот его начало

Комментаторы на Github немедленно подвергли обструкции сетевых инженеров из компании Comcast за катастрофически низкое качество кода. Скрипт ужасен по нескольким причинам. Например, он осуществляет бесконечные AJAX-запросы на неправильный URL каждые 5000 миллисекунд при любой открытой веб-странице.

Если отображается информационное сообщение для пользователя, то не предусмотрено способов его закрыть, но оно само закроется через пять секунд из-за неправильного AJAX-запроса. В этом случае один баг нивелируется другим багом. Скрипт тратит много времени на проверку наличия браузера Netscape Navigator 6, есть и другие несуразности.

В общем, разработчики считают крайне непрофессиональным внедрять такие скрипты в транзитный трафик на маршрутизаторе провайдера, тем более что они забивают полосу пропускания бессмысленными AJAX-запросами.