Троянская свинья и хедер Content Security Policy.

21 сентября 2015, 15:00

Троянская свинья и хедер Content Security Policy.

Троянская свинья.

Не спит прохиндей,
Нам хочет подкинуть свинью.
И ты тоже бди!

Поскольку чуть ранее мы затронули тему любви поисковых систем к сайтам, корректно работающим с хитрыми хедерами (документ про If-Modified-Since как пример), было бы логично пообщаться и с другими, не менее хитрыми хедерами, к тому же имеющими куда как большее влияние на ранжирование сайта.

Плохо только, что про те хедеры мало кто знает.
Ну что делать, будем просвещаться.

Однако из гуманных побуждений хочется предупредить: жертвам ЕГЭ данный пост читать явно не стоит. Он адресован исключительно вебмастерам, не разучившимся думать, и уже видевших в этой жизни всякое, так что мало что способно повергнуть их в шок и трепет.

А начнём мы с не кошерной рекламы.

Чтобы был хоть какой-то стимул проникнуться духом ужаса, творящимся в Сети, рекомендуется на ночь глядя почитать пять абзацев текста от Яндекса про назойливую рекламу, а также про кару небесную за оную.

Текст страшилки от Яндекса уже годовалой давности, так что всё обещанное там давно и успешно реализовано. Вебмастера, повинные в назойливой и агрессивной рекламе, особенно рекламе непотребной, отлучены от титьки, преданы анафеме, и оттеснены подальше от топа поисковой выдачи.

Непонятно только, зачем про всё про это думать вменяемым вебмастерам. Они же ничего такого у себя на сайте не держат, верно?

Блажен, кто верует :)
Давайте местный автор Вам сейчас ужасов порасскажет.
Он это любит и умеет.

Вы не контролируете содержимое своего сайта.

Вот давайте для примера возьмём сайт местного автора. Который интересен тем, что на нём вообще нет никакой рекламы. Ну разве что немножко продажных ссылок стоит, да и то в виде статичного HTML кода, оборудованного превьюшками, и прочей красотой.

Однако, если воткнуть в сайт метрику от ЛивИнтернета, либо любую аналогичную, которая умеет обнаруживать переходы с этого сайта на другие ресурсы (т.е. фиксировать клик по ссылкам), то там непременно встретится странное. Не в большом количестве, но таки будет.

К примеру, почти гарантированно нарисуются кликандеры, всевозможные лохотроны, и всякая прочая пикантщина, характерная для тизеров.

В этом месте все подумали «Стоп, как же так? Если на сайте всего этого добра гарантированно нет, ибо вебмастер зуб даёт, откуда ж такие ссылки возьмутся? Сайт поломали? Не фильтруются продажные ссылки? Метрика лжёт безбожно?»

Нет, эти предположения не верны.
Вся эта похабщина рисуется серферам их же браузерами.
При нахождении их на абсолютно любом сайте.
И на Вашем тоже.

С этого момента начинаем знать, что в современном браузере многочисленные плагины (немалая часть которых фактически фейковые, и писались вовсе не для того, что у них заявлено в назначении) легко и просто могут изменить отображаемый HTML код страницы как угодно. Буквально.

Заменить Вашу рекламу своей. Засунуть в хедер Вашего сайта (да и вообще в любое место страницы) свой баннер. Подменить Ваши счётчики чужими. Навтыкать в страницу чуждых элементов, скриптов, тизеров, фреймов - чего угодно. Да хоть попап повесить.

И Вы ничего с этим не можете поделать.

Маленькая иллюстрация работы фейкового плагина.

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

Пусть он будет таким - всё кликабельно:

Исходный вид страницы сайта.

Если теперь дать брузеру «архиполезный» плагин, который якобы что-то делает, та же страница превращается в тыкву:

Реклама, вставляемая расширением браузера.

Мы видим, как в правом верхнем углу появился уголок-замануха с флашем внутри, навыскакивали какие-то баннеры, а потом ринулись открываться попапы - этого картинка уже показать не может.

Понятно, что заскриншоченная страница выбрана не просто так - это морда сервиса, позволяющего увидеть всю ту тряхомудию, что в страницу понавтыкал плагин. Список этой нечисти буквально выпадает до пола:

Рапорт о нарушении Content Security Policy.

Конечно, это экстремальный случай, и придурков, чей браузер оборудован чем-то подобным, на свете не так уж и много. Однако посыл автора Вам уже должен быть понятен: в большинстве случаев серфер видит Ваш сайт совсем не таким, каким вы его себе представляете.

Ваша реклама будет заменена на чужую (потому-то CTR Вашей рекламы и стремится к нулю), а страница увешана левыми тизерами, на фоне которых все Ваши потуги чего-то донести до читателя - как об стену горох.

Почему это плохо?

Потому что есть такой параметр ранжирования, как поведенческие факторы. Плюс постулированная нелюбовь искалок ко всякой хрени на страницах, цитата про что от Яндекса была выше (у Гугла всё то же самое, только строже). И, вообще-то говоря, ни одна искалка не станет разбираться в происхождении всякой хрени на страницах Вашего сайта. Генерирует Ваш сайт трафик по порнушным тизерам - ну так ату его.

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

Их браузеры нарисуют на документах Вашего ресурса всё непотребство, какое только существует в природе. С соответствующими переходами и пользовательским поведением.

Повредит ли это сайту?
Без всяких сомнений. Яндекс это прямо обещает.

И что с этим можно поделать?

Тут только два пути - либо надеяться, что магазин приложений для Гугл Хрома как-то будет фильтровать зловредные расширения, либо самому не допускать возможности встраивания кем ни попадя и чего ни попадя в HTML код Ваших страниц на клиентской стороне.

Второй путь явно перспективнее и прямее.

Благо, такой механизм даже предусмотрен. Выдуман он как раз именно на этот случай, и зовётся Content Security Policy. Мануалы по которому легко гуглятся, в том числе уже и на русском языке.

Сущность Политики Безопасности Контента.

Если вкратце, то все современные браузеры понимают и поддерживают инструкции CSP, в которых разработчик сайта оговаривает, с каких именно хостов можно подгружать те или иные ресурсы (по типам - изображения, скрипты, ифреймы, и т.д). По факту это самый настоящий белый список.

Такой инструкции в обязательном порядке подчиняются плагины и расширения для браузера, так что даже «заражённый» браузер не имеет физической возможности нарисовать на странице чего попало. Если, конечно, тот браузер изначально не от варёзной конторы - будьте внимательны к родословной своего софта.

Соответственно, вся масса фейковых расширений для браузера, мечтающих нарисовать на странице Вашего сайта заместо Вашей же рекламы, например, от Директа, свой блочок тизеров с голыми тётками, просто не сможет этого сделать. Потому что Content Security Policy не предусматривает ифрейма или скрипта, подгруженного с URL-а тизерки.

А раз так, максимум, что может сделать фейковое расширение - это убить Вашу рекламу от Директа. Нарисовать на её месте что-то своё уже не получится.

Соответственно, никаких ссылок на порнуху и прочие лохотроны с Вашего сайта не возникает, переходов по таким ссылкам нет, и поведенческие факторы домена не деградируют до уровня плинтуса.

Так что вопроса, стоит ли забивать себе голову премудростями Content Security Policy, даже не стоит. CSP на сайт встраивать придётся по-любому. Нужно лишь сообразить, как это сделать с наименьшими усилиями.

Метод подключения Политики Безопасности Контента.

Обычно это делается через инструкцию в .htaccess файле, с задействованием модуля mod_headers. Оно вроде бы и просто, но.

Что-то подсказывает, что при локальном размещении сайта (локальный web-сервер типа «Денвер» или ему подобный) Вам захочется, чтобы Политика Безопасности Контента работала так же, как и в Вебе. Что здраво и правильно - отлаживать политику безопасности удобно под локалкой, дабы не напортачить публично.

Но вот вряд ли кому захочется проходить квест по узнаванию версии Апача в «Денвере», изыскиванию на оффсайте Апача точно такой же версии под Винду, выковыриванию из msi установщика модуля "mod_headers.so" с последующим вкорячиванием его в «Денвера» и сопутствующей пропиской в конфиги.

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

Более того, нет никакой гарантии, что модуль mod_headers обязательно будет присутствовать на Вашем сервере. Запросто может отсутствовать, ибо слать хедеры силами Апача - явно не мейнстрим.

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

Так что на общепринятый способ использования Content Security Policy в .htaccess файле мы сознательно забьём. И подключим политику так, чтобы никакие дополнительные модули на сервере вообще не понадобились.

Самурайский подход к Content Security Policy.

В каждом движке обязательно есть файл, из которого инициируется загрузка всех необходимых компонентов. Этакая точка сборки.

Если брать для конкретики что-нибудь знакомое, например, всё тот же пресловутый Ласто Блог, то это будет индексный файл в корне. Там всего-то детектируется версия PHP на хосте, и подгружается соответствующий файл движка под эту версию PHP (да, весь движок живёт в одном файле - такова концепция портабле софта).

Теперь давайте перед этим мудрым кодом напишем не менее отвязную конструкцию, чтобы в итоге получилась вот такая последовательность из трёх самостоятельных блоков, каждый из которых надписан в комментарии:

<?php /* Выше этой строки в файле ничего не должно быть */

 # Протоколирование рапортов Content Security Policy:

   
if (isset($_GET['content-security-policy'])) {
      
header('HTTP/1.0 204 No Response');
 
      
$report=file_get_contents('php://input');
      
$report=json_decode($report,true);
      if (empty(
$report)) die;

      
$line="\n";
      foreach (
         array(
            
' blocked:   ' => 'blocked-uri',
            
' directive: ' => 'violated-directive',
            
' document:  ' => 'document-uri',
         ) as 
$k => $v)
      
$line.="\n".$k.(isset($report['csp-report'][$v]) ? $report['csp-report'][$v]: '');

      
date_default_timezone_set('Etc/GMT-6');
      
file_put_contents(
         
'./data/csp/'.date('d-m-Y').'.txt',
         
$line,
         
FILE_APPEND LOCK_EX
      
);
      die;   
   }

 
# Отправка заголовка Content Security Policy:

   
header(
        
# "Content-Security-Policy-Report-Only: " // Отладка
          
"Content-Security-Policy: "             // Работа
         
." report-uri ./index.php?content-security-policy=ok;"
         
." default-src 'self';"
         
." img-src data: counter.yadro.ru *.gstatic.com 'self';"
         
." script-src 'unsafe-inline' 'self';" //'unsafe-censored'
         
." frame-src *.google.ru *.google.com kset.kz *.youtube.com 'self';"
         
." object-src st.kset.kz www.youtube.com 'self';"
         
." connect-src https://translate.googleapis.com 'self';"
         
." style-src 'unsafe-inline' 'self';"
         
." media-src *;"
         
." font-src 'self';"
         
." form-action 'self';");

 
# Сборка движка:

   
$n=array();
   
preg_match_all('~^5\.(\d{1,})\.\d{1,}~',phpversion(),$n);

   switch(isset(
$n[1][0]) ? $n[1][0]: 'na') {
      case 
2:
      case 
3:
      case 
4:
         include(
'./data/php_5_'.$n[1][0].'.php');
      break;
      default:
         die(
'Check PHP version! '.phpversion().' not supported.');
   }

/* Ниже этой строки в файле ничего не должно быть. */ ?>

Мы видим, что теперь каждая страница Ласто Блога отправляет браузеру довольно сложный и странный хедер (заголовок), формируемый во втором блоке. По сути дела, это обычная текстовая строка в довольно неудобном синтаксисе - видимо, у разработчиков не хватило ума сразу оперировать сериализованным индексированным массивом. И, соответственно, теперь многие поколения вебмастеров обречены изучать птичий язык.

Так что для удобства понимания этого птичьего языка местный автор разделил весь хедер на самостоятельные подстроки, которые мы дальше и рассмотрим.

Заголовок хедера Content-Security-Policy-Report-Only задокументирован чебурашкой слева, и является альтернативой заголовку Content-Security-Policy (можно зачебурашить эту строку, расчебурашив предыдущую). В текущем написании браузер заблокирует все ресурсы, противоречащие Политике Безопасности Контента, а в альтернативном варианте - лишь только эмулирует работу, позволяя выявить всех нарушителей, и записать их в лог.

Это как бы рабочий режим, и режим отладки соответственно.

Далее идут различные директивы, про суть и смысл которых местный автор рассказывать не станет. Потому как есть масса популярных объяснялок типа этой (гуглится оно легко и в изобилии). Пример, как разрешить ифреймы со вполне конкретных ресурсов, скрипты счётчиков, вставки с видеохостингов, и т.п., Вы видите.

Самое интересное в коде - директива report-uri, посылающая рапорт о нарушении политики безопасности тому же самому файлу, но в первый блок его кода. Если такой рапорт не нужен, ставим перед строкой чебурашку.

Теперь о рапортах нарушений политики безопасности контента. Они пишутся за каждые отдельные сутки в папку ./data/csp/ (её надо создать в Ласто Блоге с правами на запись), либо в иную папку, какую Вы напишите в коде первого блока.

Самое любопытное будет как раз в этих рапортах.

Кто и что вставляет в HTML код страниц наших файлов?

Как оказалось, разнообразных расширений для браузера, желающих что-то вкорячить в страницы просматриваемых сайтов, просто навалом. Такие расширения легко детектируются в логах по доменам, в корне которых браузером вообще ничего не открывается.

Приготовьтесь увидеть в рапорте сотни таких доменов. Как только пошла мода на подгрузку рекламы через браузерные расширения, где-то с конца 2014 года, такие домены регистрируются тысячами.

Также много внедрений dl.metabar.ru" и mc.yandex.ru - это сами браузеры так собирают статистику.

Самое эпичное, это когда некая приблуда на компе серфера снифает трафик, перехватывает хедер Content Security Policy, модифицирует его, а потом подгружает в открываемой браузером странице свой аякс. Который, естественно, исполняется, ибо Политика Безопасности против него не возражает.

Удивительно, но производители браузеров не считают это мошенничеством, и никак ему не препятствуют.

Замечен в таком поведении, к примеру, Касперский - он впендюривает свой домен gc.kis.scr.kaspersky-labs.com в директиву script-src. И, соответственно, подгружает на страницы свои собственные метрики, в которых Бог весть что сидит и за чем наблюдает. Путей внедрения собственных скриптов Касперского в просматриваемые браузером странички много, иногда про это даже пишут: Kaspersky следит за вами, за ваши деньги.

Так что обыватель может сколько угодно пугаться Большого Брата в лице Майкрософта, который внедрил «телеметрию» (под этим термином скрывается банальное шпионство за пользователем) во всю линейку Винды от семёрки до десятки, но самого главного обыватель не знает.

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

Прикиньте потенциал, особенно учитывая популярность Касперского. И то, что в конторах запрещено подключать компьютер к сети, если на нём не стоит антивирус. Причём в госконторах 146%, что это будет именно Касперский.

Ну а то, что КаДжиБи с Касперсим договориться намного проще, чем с любым другим Большим Братом, это и дураку понятно.

Так что понимайте - Content Security Policy поможет избежать санкций и всяких там пессимизаций Яндекса и Гугла за контент, привнесённый браузером пользователя на страницы Вашего сайта, но не защитит полностью от внедрений кода, подсунутого Касперским, поработившим операционную систему компьютера серфера.

Использовать ли Content Security Policy ?

Придётся. Ибо все браузеры сегодня пишутся на той же платформе, что и Хром. А потому расширений будет миллион, всяких разных. В том числе и фейковых, наносящих Вашему сайту реальный и ощутимый вред.

Мудрый вебмастер внемлет совету, найдёт в себе силы и время для того, чтобы разобраться в сабже, и вписать нехитрые директивы Content Security Policy в свой сайт. Убив тем самым всю рекламную и маркетинговую хрень, которая там могла бы появиться в браузере нерадивого серфера. И обезопасив тем самым себя от вердикта Платона Щукина про недопустимое содержимое и наказание за то.

Глупый вебмастер от всего этого отмахнётся, и продолжит развлекать посетителей всякой хренью, отображаемой на страницах его сайта, премного удивляясь, откуда же она там взялась. Дальнейшая его судьба нас почему-то совершенно не волнует.

А другого расклада и нет.

Дополнение 22.09.15:
Что про заражённые браузеры думает Яндекс?

Логика логикой, но никогда не лишне спросить у платонов напрямую и в лоб, что делают их алгоритмы с сайтами, посетители которых не блещут умом и осторожностью, и несут на борту своих браузеров полный перечень из энциклопедии венеролога.

Для сайтов развлекательной ниши такое особо актуально.
Там интеллектуалы вообще не ходят, со всеми вытекающими.

Если спрашивать грамотно, ответ от платонов Вы получите всегда. И конкретно тут он будет обнадёживающий - платоны прекрасно понимают ситуацию, у них даже есть громадный список с сайтами наподобие teaser.bz, и другой список с плагинами. И да, платоны знают, для чего всё это, и как оно работает. А потому самому сайту санкций не полагается.

Однако местный автор ни капли не верит в такое счастье, и вот почему.

Если обладать понятийным мышлением, и видеть вектор движения того же Яндекса, то очевидно, что он сделал ставку на исключительно поведенческие факторы при ранжировании сайтов. Более того, он даже в последнее время применяет тактику Гугла этак десятилетней давности, которую местный автор именует «бонусом новичка» - это когда в ТОП поисковой выдачи ставится документ, который ещё не заслужил права там присутствовать, и по поведению пользователей выносится вердикт о качестве того документа. Главное, чтоб в документе стояла метрика Яндекса, а то шпионства не получится.

Последние публикации в блоге Яндекса для вебмастеров, типа данного, как раз о вышесказанном.

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

То есть взяли чистый сайт, на котором пользователи ведут себя вот так. Запомнили и записали. Потом вылили на тот же сайт два ведра помоев, впендюрили десяток попапов, обильно рассыпали тизеры с голыми тётками - и о чудо, поведенческие факторы у нас совсем не изменились, и сайт ну никак от этого не пострадал. Юзеры в упор не видят голых тёток, силой неведомой магии спасаются от сработки попапов, и стойко не поддаются ни на какие провокации.

Вы верите в такое?
Местный автор утратил веру в чудеса уже давно.

Другие статьи категории «Вебмастеру на заметку»

Дорвейные технологии в 2015 году.

Дорвейные технологии в 2015 году. Время от времени любой владелец сайта, либо просто интересующийся вебмастерингом, начинает вспоминать былое, ностальгировать, требуя водки. И, ретроспективно созерцая жизнь, спрашивать себя и окружающих, всё ли ещё работает та или иная технология, и не пора звать плакальщиц. Например, многие почему-то думают, что дорвейные технологии умерли лет пять назад, и трафика больше не дают.

Причёсывание сайтов по последней моде.

Причёсывание сайтов по последней моде. Многие вебмастера замечали, что по прошествии какого-то времени любой сайт обязательно впадает в немилость поисковиков. Вроде ничего кардинального Вы на сайте не делали, а поисковый трафик как отрезало. Ну а без поискового трафика обидно живётся — коллеги насмехаются и зубоскалят. Чаще всего в таком форс-мажоре виноват сам вебмастер, ранее учудив какую-нибудь «раскрутку» через доски и каталоги, и прочие ужимки школоты.

Ищу хостинг по рекомендации (спасибо, найдено).

Ищу хостинг по рекомендации спасибо, найдено. Друзья, порекомендуйте хорошего хостера. Текущим пользовался лет десять (гудзонхост), но в последнее время с ним настоящая беда. Саппорт целиком украинский, а там у них сейчас начало наших 90-ых годов, то бишь бардак с фатальными последствиями. Не исключён хостинг внутри Раши. Так понимаю, трансграничный трафик со временем будет только деградировать из-за всяких веерных блокировок, и к этому надо быть готовым.
22 сентября 2015, 02:54

№ 1Добавочка...

1. Дописал player.vimeo.com в разрешённые для frame-src. Есть там парочка видео.

2. Было бы неплохо привязать время ('Etc/GMT-3') к стандартным настройкам в settings.php - можно забыть при переходе на другой хостинг или часовой пояс. Правда не знаю, как это лучше сделать, просто указать инклюдом вроде не кошерно.

3. Имя файла прописал наоборот ('Y-m-d'), дабы файлы шли действительно по порядку, а не путались по дням.

4. И вопрос. Если у меня работает свой php скрипт в ифрейме, он по идее и должен работать, ибо 'self', не так ли?

P.S. Странным стало минимум поисковиков на странице статистики, но... время покажет.

P.P.S. Перевёл в рабочий режим, завтра будет недосуг. Рапорт так же протоколируется.
2. Было бы неплохо, но сеттинги пхп инклюдятся в сам движок, и тут их инклюдить нельзя, ибо тогда будет двойной инклюд. Так что время задаём отдельным оператором, который вообще не нужен, если разница между местным временем админа и серверным особой роли не играет.

4. Да, и это будет видно визуально в рабочем режиме.

P.S. - просто браузеры, не поддерживающие HTTPS, в природе практически кончились, и весь поисковый трафик идёт без распознавания запросов - они или просто не отдаются (Гугл), или шифруются (Яндекс). Посему в запросе значится "неведомый запрос" - хитов может быть много, а запрос один.

Настраивайте статмодуль так, чтобы запись про искалку появлялась и при единственном запросе.
airsound
22 сентября 2015, 04:41

№ 2Работает и на Нане

Спасибо, прежде всего.

Добавил код в индексный файл Наны, работает. Только первый и третий блоки пришлось выкинуть. Соответственно возможность получения отчетов пропала, и строчку report-uri пришлось закомментировать.

Белый список очень пухлый выходит, тот же RTB от Сапы помимо самого скрипта грузит счетчик с acint.net, и в порядке аукциона пару рекламных сетей во фрейме. Популярные ныне "кнопки соцсетей" тащат прицепом вообще бог знает что, вся консоль красная.

Есть над чем подумать, еще раз спасибо.
Можно тупо сделать отдельный .php файл в корне с первым блоком внутри, и посылать отчёты в него. Потому как без отчётов не всё будет замечено - например, видеохостинги любят менять подгружаемые элементы по прошествии какого-то времени, и изначально полностью правильно настроенная политика станет то видео блокировать.
Самурай Чамплу
22 сентября 2015, 21:44

№ 3Как белые списки делать?

Например - рекламу от гугла - адсенс - как расписать?
Вроде и .com и .ru гуглы разрешены..
Автор не будет писать инструкции для АдСенса, Директа, и прочих сущностей. Пользуйтесь поиском - он выводит на документы типа searchengines.guru буквально в три секунды.

Либо изучайте отчёты блокировок CSP - там всё заблокированное отображается, с локализацией до директивы.

Консоль Хрома тоже поможет.
Дмитрий
24 сентября 2015, 00:24

№ 4Как белые списки делать?

Для Гугла и Яши настройки здесь goo.gl
Проверено - всё работает нормально.
Андрей
30 сентября 2015, 20:09

№ 5Попробовал Content Security Policy

Добавил Content Security Policy и в NanoCMS, и в LastoBlog, и в LastoShop, и в Abductor. Не ожидал, что в отчеты за несколько дней будут записаны мегабайты информации. Действительно, сайтов уйма блокируется.

Касательно Abductorа вопрос: можно как-нибудь сделать, чтоб Content Security Policy не касалось административной части сайта? Картинки-то со сторонних сайтов в модерируемых статьях не отображаются благодаря правилам. Хотя это не критично (все равно ж переходишь на сайт с оригинальной статьей), но не хочется плодить отчеты.
Видимо, имеет смысл отправку хедера перенести в файл design.php - там уже определена переменная $_s['admin']

Если она false, то хедер отправляете, а если true, то не отправляете. Либо посылаете какой-то модернизированный хедер, в котором изображения разрешены для любых сайтов (в качестве значения соответствующей директивы указана звёздочка).

В корневом файле никак не понять, авторизован админ, или нет, так что такое условие там реализовать не получится.
Слава
16 октября 2015, 15:40

№ 10Альтернатива Касперскому

Доброго времени суток.

После прочтения этой статьи, пропало всякое желание пользоваться Касперским.

Мастер, подскажите пожалуйста, какая альтернатива ему будет максимально разумной и оправданной как с точки зрения безопасности личного компа (т.е защиты от вирусов), так и уверенности в том, что мои данные не будут "сняты" и использованы кем-то еще.

И каким антивирем пользуетесь Вы?
В результате долгих экспериментов был выбран AVG.

При этом, естественно, изо всех сил помним, что антивирус ни разу не является сдерживающим фактором для дурной головы, поэтому для настроенной и устоявшейся системы (в которую мы не ставим и не планируем ставить нового софта) рекомендуется накатывать поверх системы что-нибудь типа Shadow Defender, либо, если хочется бесплатно и совсем просто, TimeFreeze (в Стране всё это мало известно, зато распиарен Shadow User - что ж, тоже вариант). И по-всякому браузер надо запускать внутри Sandboxie во избежание.

Совет может показаться неудобным, но у местного автора на компе живёт только система, без ничего. Все пользовательские данные - только на сменных носителях, и только в контейнерах VeraCrypt (идеологический наследник TrueCrypt, также распиаренный в Стране как единственный честный криптоконтейнер на весь Интернет).

Если делать так, то любое нашествие вирусни лечится простой перезагрузкой компа. Точно так же, как и фатальные последствия собственных неразумных действий (когда что-то невзначай снесено не глядя).
Игорь
Все заметки категории «Вебмастеру на заметку»