The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Подмена параметров браузера для вхо..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Подмена параметров браузера для вхо..."  +/
Сообщение от auto_tips (ok) on 22-Фев-16, 10:41 
Для обеспечения индексации поисковыми системами большинство сайтов с платным новостным контентом предоставляют обходной путь для беспрепятственного входа поискового бота Google. Бот проверяется по содержимому заголовков Referer и User-Agent, что позволяет любому желающему просмотреть закрытые области заменив идентификатор браузера и указав в качестве адреса предыдущей страницы google.com.

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

Для автоматизации беспрепятственного доступа к таким ресурсам как Wall Street Journal предлагается  небольшое дополнение к браузеру Chrome.

Создаём файл manifest.json, перечислив сайты для которых следует притвориться поисковым ботом:

   {
     "name": "Innocuous Chrome Extension",
     "version": "0.1",
     "description": "This is an innocuous chrome extension.",
     "permissions": ["webRequest", "webRequestBlocking",
                  "http://www.ft.com/*",
                  "http://www.wsj.com/*",
                  "https://www.wsj.com/*",
                  "http://www.economist.com/*",
                  "http://www.nytimes.com/*",
                  "https://hbr.org/*",
                  "http://www.newyorker.com/*",
                  "http://www.forbes.com/*",
                  "http://online.barrons.com/*",
                  "http://www.barrons.com/*",
                  "http://www.investingdaily.com/*",
                  "http://realmoney.thestreet.com/*",
                  "http://www.washingtonpost.com/*"
                  ],
     "background": {
       "scripts": ["background.js"]
     },
     "manifest_version": 2
   }

Создаём скрипт background.js:

   var ALLOW_COOKIES = ["nytimes", "ft.com"]

   function changeRefer(details) {
     foundReferer = false;
     foundUA = false

     var reqHeaders = details.requestHeaders.filter(function(header) {
       // block cookies by default
       if (header.name !== "Cookie") {
         return header;
       }

       allowHeader = ALLOW_COOKIES.map(function(url) {
         if (details.url.includes(url)) {
           return true;
         }
       });
       if (allowHeader.filter(Boolean)==true) return header;

     }).map(function(header) {
    
       if (header.name === "Referer") {
         header.value = "https://www.google.com/";
         foundReferer = true;
       }
       if (header.name === "User-Agent") {
         header.value = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
         foundUA = true;
       }
       return header;
     })
  
     // append referer
     if (!foundReferer) {
       reqHeaders.push({
         "name": "Referer",
         "value": "https://www.google.com/"
       })
     }
     if (!foundUA) {
       reqHeaders.push({
         "name": "User-Agent",
         "value": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
       })
     }
     console.log(reqHeaders);
     return {requestHeaders: reqHeaders};
   }

   function blockCookies(details) {
     for (var i = 0; i < details.responseHeaders.length; ++i) {
       if (details.responseHeaders[i].name === "Set-Cookie") {
         details.responseHeaders.splice(i, 1);
       }
     }
     return {responseHeaders: details.responseHeaders};
   }
  
   chrome.webRequest.onBeforeSendHeaders.addListener(changeRefer, {
     urls: ["<all_urls>"],
     types: ["main_frame"],
   }, ["requestHeaders", "blocking"]);

   chrome.webRequest.onHeadersReceived.addListener(blockCookies, {
     urls: ["<all_urls>"],
     types: ["main_frame"],
   }, ["responseHeaders", "blocking"]);

Размещаем manifest.json и background.js в отдельной директории, открываем в Chrome страницу chrome://extensions/, включаем режим разработчика (Developer Mode), выбираем пункт "Click Load unpacked extension..." и указываем в открывшемся диалоге путь к директории с файлами.

URL: http://elaineou.com/2016/02/19/how-to-use-chrome-extensions-.../
Обсуждается: https://www.opennet.ru/tips/info/2940.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Подмена параметров браузера для входа в закрытые области нов..."  –1 +/
Сообщение от count0krsk (ok) on 22-Фев-16, 10:41 
Да как-то неудобно. В фаерфоксе (через плагин) и Опере можно на лету такую подмену включать-выключать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от nur (??) on 24-Фев-16, 08:06 
но прикольно
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от x0r (??) on 24-Фев-16, 10:06 
на lwn.net не работает :-)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от foxy_ant on 26-Фев-16, 10:21 
надо lwn.net добавить в manifest, тогда открывается возможность читать новости за 3 дня до их появления :-)
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от про on 26-Фев-16, 13:57 
а для slon и xaker сработает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от про on 26-Фев-16, 14:07 
сам попробовал - не работает метод. а жаль.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от Киров on 28-Фев-16, 19:32 
Могу отдать свой слон на месяц за пол мульёна сатошей.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Подмена параметров браузера для входа в закрытые области нов..."  +/
Сообщение от Полли on 25-Мрт-16, 17:20 
Локализация используется, однако в манифесте не указан атрибут default_locale
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру