Ajax googleapis com что это: Googleapis.com взломан? / Habr – Google добавил интерфейс для AJAX-библиотек / Habr

Googleapis.com взломан? / Habr

Как известно хост ajax.googleapis.com является CDN-хостингом для множества библиотек, в том числе и jQuery. И вот сегодня обращается знакомый, который говорит, что при заходе на его сайт Yandex Safe Browsing сильно ругается и рекомендует не посещать, внезапно ставший опасным сайт.

Ссылка на сайт сразу же отправилась в онлайн антивирус и в анализатор кода сайта. И вот что выяснилось.

А выяснилась простая вещь, что сам сайт не заражен. Вирусного кода нет ни в коде страниц, также на самом хосте отсутствуют модификации каких либо скриптов или подгруженных файлов. .htaccess также девственно пуст.
При этом из внешних ссылок на сайте присутствуют только ссылки на пару счетчиков и на пресловутую библиотеку jQuery хостящуюся на ajax.googleapis.com. И вот с ней то как раз и проблема.

Вот что выдал уже Google Safe Browsing про свой же собственный сайт:

Произошло во время последнего посещения этого сайта компанией Google?
На 0 из 10 страниц сайта, протестированных нами за последние 90 дней, происходила загрузка и установка вредоносного ПО без согласия пользователя. Последнее посещение этого сайта системой Google произошло 2012-03-18; последний раз подозрительный контент был обнаружен на этом сайте 2012-03-18.

Вредоносное ПО включает 44 scripting exploit(s), 29 exploit(s), 1 trojan(s).

Сетей, в которых размещался этот сайт: 8 (в том числе AS15169 (Google Internet Backbone), AS9318 (HANARO), AS23338 (DCS)).

Был ли этот сайт промежуточным звеном в дальнейшем распространении вредоносного ПО?

По всей видимости, за последние 90 дней сайт ajax.googleapis.com использовался в качестве промежуточного звена для заражения других сайтов. Число зараженных сайтов: 6 (в том числе interkambio.com/, laisla.com.co/, animetoplist.org/).

Размещалось ли на этом сайте вредоносное ПО?

Да. За последние 90 дней на этом сайте размещалось вредоносное ПО. Число зараженных им доменов: 8 (в том числе pumpthebeat.com/, trackingvinceyoung.com/, by-murat.at/)

Подробнее и со ссылками можно посмотреть здесь.

Как видно сейчас сайт уже вылечен.
Но куча сайтов с которых идет обращение к jQuery (другие библиотеки не смотрел) на ajax.googleapis.com до сих пор блокируются Яндексом.

Гуглинг, яндексинг ничего не дал о подробностях взлома или проблемы. Есть у кого-то догадки или подробности?

PS. Я знаю, что довольно часто встречается подгрузка библиотеки jQuery c ajax.googleapis.com в составе инжектированного кода, но в этом случае это не тот случай.

Является ли ссылка на jQuery из ajax.googleapis.com плохой практикой?

Я видел, что он рекомендуется ссылаться на jQuery через:

<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>

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

Что делать, если хакер заменяет этот файл на сервере google? Они могли бы сделать бесконечное количество "evil" вещей из $(document).ready().

Я параноик или это плохая практика?

Редактировать: Очевидно, что это вопрос мнения. Но я думаю, что лучший ответ-Это комментарий ceejayoz

Это может быть незаконно для банка. Проверять ваша локальная конфиденциальность и безопасность данных законы.

javascript jquery security

Поделиться Источник

Seth Reno     21 января 2010 в 20:32

3 Ответа



4

Нет, просто имейте в виду, что меньшинство пользователей (очень небольшое меньшинство) может заблокировать google. Если вы беспокоитесь о том, что хакеры захватят Источник Google jQuery, вы не должны чувствовать себя в безопасности, делая что-либо в интернете.

Поделиться Sampson     21 января 2010 в 20:35



3

У Google есть гораздо более заманчивые цели, чем их хост jQuery (если только он не используется банками), поэтому я бы не слишком беспокоился.

Кроме того, я бы предположил, что ваш webserver легче взломать, чем серверы Google.

Поделиться SLaks     21 января 2010 в 20:34



2

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

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

Поделиться KP.     21 января 2010 в 20:37


Похожие вопросы:


Является ли циклическая ссылка плохой практикой?

Допустим, у меня есть три класса: EntityManager , Entity и Component . Сущность имеет массив компонентов (указателей), и каждый из этих компонентов имеет поле, которое является указателем на...


Является ли использование Javascript внутри функции jQuery плохой практикой?

Я знаю основы как jQuery, так и JavaScript.I и хотел бы следовать хорошей практике кодирования. Является ли использование JavaScript внутри функции jQuery плохой практикой? Например :...


Является ли ссылка и модификация Game1 плохой практикой?

Мне нужно изменить несколько переменных Game1 из другого класса. Я делал это вот так: public class Game1 : Microsoft.Xna.Framework.Game { public int test1; public int test2; } public class Player {...


Является ли прикрепление функций к объекту jQuery плохой практикой?

В настоящее время у меня есть плагин jQuery, который не только устанавливает свою функцию в $.fn , но и сам $ , проверяя if (typeof(this) == 'function') , чтобы увидеть, был ли он вызван через...


является ли такое использование динамики плохой практикой?

Мне было интересно, является ли этот код плохой практикой. .. var StoresInData = (from s in MainData orderby s.LocationCode select new { s.LocationCode, s.LocationShortName, s.LocationName...


является ли использование ярлыка $() в jQuery плохой практикой?

Недавно я слушал подкаст, который сделал комментарий об использовании $() против использования jQuery() . Было заявлено, что каждый раз при использовании $() будет создаваться новый объект, а при...


Является ли вход в SQL плохой практикой?

Я работаю в компании eCommerce. Наш DBA недавно сказал мне, что использование SQL для ведения журнала является плохой практикой, и вместо этого рекомендовал плоский файл и grepping. Я никогда не...


Является ли рекурсия плохой практикой в целом?

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


Является ли использование пакета по умолчанию Java плохой практикой?

Является ли использование пакета по умолчанию Java плохой практикой?


Spring-является ли использование нового плохой практикой?

Является ли создание объектов вручную , т. е. использование оператора new вместо регистрации Боба Spring и использования инъекции зависимостей плохой практикой? Я имею в виду, должен ли контейнер...


скрипт src= " / / ajax.googleapis.com, где находится http?

Я не смог понять этого, но по какой-то причине, когда я использую библиотеки google и ищу скрипт для использования ( https://developers.google.com/speed/libraries/devguide#jquery), они предоставляются без http... почему это так? Я также заметил, что google теперь делает это на коде встраивания Youtube (что заставляет мой плагин встраивания ckeditor youtube видеть это как недопустимый src для iframe).

Пример (без http):

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

Почему бы не это (с http):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

У меня такое чувство, что это как-то связано с объединением всего в https. Может быть, это подготовка?

html youtube ckeditor

Поделиться Источник Tony M     07 августа 2013 в 19:31

3 Ответа



6

В основном это позволяет браузеру определить, следует ли использовать http:// или https:// на основе протокола, который использует ваша страница. Если ваша страница находится на https, то он будет использовать https, чтобы получить скрипты. Потому что если вы жесткий код, чтобы сказать http и вы страница использует https, то браузер будет выдавать ошибки, сообщающие пользователю, что сайт не может быть безопасным, например. Итог всегда используйте относительный URL для скриптов, изображений и всех ресурсов и не жестко кодируйте протокол http.

Поделиться Tib     07 августа 2013 в 19:36



0

Это родственник URI. Он поддерживает ту же схему, что и страница, запрошенная при изменении хоста и всего последующего.

Поделиться Quentin     07 августа 2013 в 19:32



0

Прочитайте о протоколе-относительном URLs , который является одним из способов предотвратить этот раздражающий "This page contains both secure and non-secure items" в IE, сохраняя все ваши запросы активов в одном протоколе.

Поделиться feitla     07 августа 2013 в 19:35


Похожие вопросы:


Почему используется "src=//" вместо " src=http://"

Я никогда не замечал этого раньше, но если вы перейдете на страницы библиотек Google , все HTML закодировано с выражением src=// , т. е. для Jquery : <script...


Javascript множественный скрипт src

Я пытаюсь сделать файл контрактной работе с разными компаниями, которые создает openheatmap. Мне нужно включить два разных файла javascript src, но то, что я сейчас делаю, не работает, это то, что я...


Ожидание ответа от ajax.googleapis.com

Я добавил jQuery на мой сайт с Google. Самое ужасное - это полная медлительность сервера google. Иногда мой сайт останавливается при попытке загрузить jquery из googleapis: <script...


Ссылка, где находится скрипт python, если он выполняется из другого местоположения

Я пытаюсь запустить скрипт python из другого места, чем там, где он находится, но мне нужно ссылаться на файлы, где находится скрипт python. Я попробовал следующее: os.chdir(os.getcwd()) Но, к...


Сортируемая таблица Jquery скрипт работает локально в Firefox, но не размещен

После бесконечного поиска я пытался реализовать Сортируемую таблицу в blogger, она работает на Chrome/Safari,, но она не работает, когда она загружается на Firefox. Я пробовал скрипт локально на...


jquery ui не будет работать, пока скрипт" http://www.google.com/jsapi " также связан

Я использую jquery UI, чтобы сдвинуть div вверх при наведении курсора. Он отлично работает сам по себе, но у меня возникают проблемы с его работой, когда этот <script...


Как получить полный путь к тому, где находится мой скрипт shell

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


Где находится файл http-access.rb?

В стандартной библиотеке ruby есть файл под названием net/http.rb . В верхней части страницы есть комментарий: # Copyright (c) 1999-2007 Yukihiro Matsumoto # Copyright (c) 1999-2007 Minero Aoki #...


добавить location.href в скрипт src

Я не профессионал javascript, и мне нужно добиться простой вещи. Как я могу добавить текущего браузера URL в тег скрипт в src? Конечный результат должен быть: <script...


// используется вместо атрибута http: / / on src=""

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


Google images api — Хабр Q&A

Привет всем. Так уж сложилось, что мне нужно парсить результат поиска по Google Images.
Накопал у них апи, но не совсем понял, как использовать параметр 'start'.

Текущий код:

 function doGoogle($resultStorage, $query, $numImages) 
    {
 
        $i = $k = $n = 0;
        while(count($resultStorage) < $numImages)
        {
            $base_url = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0';
            $url = $base_url;
            if ($i == 0)
                $url .= '&imgsz=large&q='.urlencode($query).'&start=00';
            else
                $url .= '&imgsz=large&q='.urlencode($query).'&start='.$k.$n;
 
 
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_URL, $url);
            $json = curl_exec($curl);
            curl_close($curl);
            $data = json_decode($json);
 
            echo '<div style="clear: both"></div>Page: <b>' . $i . '</b><br />Url: <b>' . $url . '</b><br />';
 
            foreach($data->responseData->results as $v)
            {
                // Если набрали нужное вол-во картинок - выходим
                if (count($resultStorage) == $num) break;
 
                // Помещаем очередной адрес картинки в массив
                array_push($resultStorage, $v->tbUrl);
 
                // Показываем картинку
                echo "<div style='float: left'><a href='{$v->unescapedUrl}'><img src='{$v->tbUrl}' /></a></div>";
            }
            $i++;
            $k+=2;
            $n++;
        }
    };

Я не уверен на счет использования переменных '$k; $n'.
Если так смотреть, то количество картинок для одного поискового запроса через апи ограничены, верно?
Сталкивался ли кто с этим. Как я понимаю, наверное. придется парсить вручную без апи.

Статистика использования javascript-библиотек и CDN / Habr

Вы когда-нибудь задумывались над такими вопросами:
  • Как мир относится к технологии CDN для загрузки библиотек?
  • Сколько успешных сайтов написано на WordPress?
  • Какие скрипты чаще всего разработчики загружают из Google CDN?
  • На сколько популярен jQuery?

А я вот задумался.
И не просто задумался, а сделал маааленькое исследование.
И написал маленькое расширение для хрома, которое, возможно, сделает жизнь лучше или сломает интернеты.
Результаты внутри.

Выводы для ленивых, или TL;DR;

  1. 10% из 300 000 самых популярных сайтов используют WordPress.
  2. Популярные сайты, использующие jQuery, переходят на подключение библиотеки из CDN. С каждым годом правильных ребят всё больше.
  3. Самые популярные версии jQuery в мире: 1.7.x, 1.8.x, 1.9.1, 1.10.2.
  4. jQuery 1.7.x лидирует с большим отрывом: каждая 4ая подключенная jquery имеет версию 1.7.1 или 1.7.2
  5. Google, jQuery и Cloudflare — самые популярные CDN.
  6. 89% всех загрузок с Google CDN — это jquery.
С чего всё началось, или прелюдия

Я вот призадумался — почему браузеры не добавляют популярные js-библиотеки в свои дистрибутивы? Ведь CDN — это очень хорошо, один урл для ресурса, кеширование, все дела. Но ещё лучше вообще не загружать статические файлы, а иметь их сразу в браузере.

Как ответ на несправедливость судьбы был изготовлен сей образец расширениестроения, который призван ускорять интернеты.

Но нельзя же просто выдвинув пару гипотез и «запилив» прототип успокоиться и почивать на лаврах: мозг требует доказательств, фактов и весёлой движухи (да, имеено так я отношусь к интересным исследованиям, хотя в процессе подготовки данных движухи как таковой было мало).

Зачем исследуем?

Итак, есть несколько идей:
  • Вся статика из CDN можеть быть безболезненно помещена в браузер, т.к. она не модифицируются и вообще перманентна.
  • Если много много людей будет грузить статику из браузера, не посылая запросы на сервера CDN, то всем будет хорошо.
  • Если хранить локально все распространённые статические файлы (читай — js библиотеки) и предположить, что сайты пишут хорошие программисты, которые не модифицируют минимизированные либы типа jquery-1.7.2.min.js, то такие файлы — перманентны и к ним применимы п.1 и п.2

Эти идеи требовали подтверждения. А в ходе реализации расширения я столкнулся с дополнительными вопросами:

  • Правда ли, что jQuery — самый популярный скрипт?
  • Какая доля скриптов подключается к сайтам из CDN?
  • Какие версии jQuery используют люди?
  • Попадают ли минифицированные библиотеки, подключаемые со своих серверов, под нужный паттерн в нужном количестве?
Что исследуем?

Изначально я хотел использовать Common Crawl корпус. Но в виду того, что этот зверь весит 81 Тб, и учитывая количество времени и денег, которое придётся потратить на его анализ, зверь был оставлен в покое.

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

Исследование

Для нужным мне ответов я использовал датасет httparchive. Это набор данных краулера, опращивающего сайты из TOP 300 000 сервиса Alexa. Т.е. можно сказать, что это огромная куча самых популярных сайтов интернета.

Я скачал себе самый свежий датасет — результаты опроса сайтов за 1 марта 2014 года.
Ниже я приведу результаты исследования и запросы, которые я использовал для их получения.
Вы можете сравнить мои результаты с результатами, полученными годом ранее.

Количество сайтов, грузящих jQuery из CDN

Скрытый текст
SELECT "jquery" AS name,
count(distinct(pageid)) AS count,
(100*count(distinct(pageid))/290835) AS percent 
FROM requests WHERE pageid <= 14802750 AND pageid >= 14489007
AND url LIKE "%//ajax.googleapis.com/ajax/libs/jquery/%"


Имя Количество %
jquery 59977 20.6223

Каждый год количество сайтов, которые используют различные CDN-решения для подключения jQuery, растёт. Это означает, что прогресс не стоит на месте и люди осознают всю крутость такого решения.
Популярность различных версий jQuery из Google CDN

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

  • Некоторые сайты используют «короткий формат» версий, к примеру //ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js. На сегодняшний день этот формат соответствует jquery-1.9.1. Я учитываю это в итоговых данных.
  • WordPress добавляет к статике параметр?ver=wpversion, которые влияет на группировку по урлу.
  • При изучении частоты версий нам нет разницы, какой протокол используется — http или https.

Скрытый текст
select SUBSTRING(
	url FROM POSITION("/libs/jquery/" IN url) + 13 
	FOR 
		LOCATE("/jquery", url, POSITION("/libs/jquery/" IN url) + 13) - (POSITION("/libs/jquery/" IN url) + 13) 
	) as version, 
count(distinct(pageid)) as count,
(100*count(distinct(pageid))/59977) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//ajax.googleapis.com/ajax/libs/jquery/%.min.js" 
group by version order by count desc;


Версия Число включений %
1.7.2 8938 14.9024
1.7.1 6842 11.4077
1.8.3 5670 9.4536
1.9.1 5533 9.2252
1.10.2 5244 8.7434
1.8.2 3832 6.3891
1.4.2 3673 6.1240
1.3.2 2519 4.1999
1.5.2 2297 3.8298
1.6.4 1987 3.3129
1.4.4 1985 3.3096
1.6.2 1644 2.7411
1.6.1 1395 2.3259
1.5.1 1160 1.9341
1.9.0 964 1.6073
1.8.1 880 1.4672
1.10.1 868 1.4472
1.8.0 803 1.3388
2.0.3 508 0.8470
1.2.6 449 0.7486
1.7.0 403 0.6719
1.4.1 382 0.6369
1.11.0 363 0.6052
1.4.3 357 0.5952
2.0.0 246 0.4102
1.6.0 204 0.3401
1.6.3 193 0.3218
1.3.1 112 0.1867
1.5.0 104 0.1734
1.4.0 83 0.1384
1.10.0 79 0.1317
2.0.2 74 0.1234
2.1.0 68 0.1134
1.3.0 42 0.0700
2.0.1 19 0.0317
1.2.3 13 0.0217

В мире jQuery наблюдается интересный тренд — версия 1.7.х лидирует из года в год с огромным отрывом.
Самые популярные CDNы, раздающие js-библиотеки.

Параметр Число % всех сайтов
Общее число CDN-запросов 78160 26.8743

Скрытый текст
select "Google"as name, count(distinct(pageid)) as count,
(100*count(distinct(pageid))/78160) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//ajax.googleapis.com/ajax/libs/%" 
UNION
select "Yandex" as name,  count(distinct(pageid)) as count,
(100*count(distinct(pageid))/78160) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//yandex.st/%" 
UNION
select "Microsoft" as name,  count(distinct(pageid)) as count,
(100*count(distinct(pageid))/78160) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//ajax.aspnetcdn.com/ajax/%" 
UNION
select "JsDelivr" as name, count(distinct(pageid)) as count,
(100*count(distinct(pageid))/78160) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//cdn.jsdelivr.net/%" 
UNION
select "Cloudflare" as name, count(distinct(pageid)) as count,
(100*count(distinct(pageid))/78160) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//cdnjs.cloudflare.com/ajax/libs/%" 
UNION
select "jQuery" as name, count(distinct(pageid)) as count,
(100*count(distinct(pageid))/78160) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%//code.jquery.com/%"
group by name order by count desc;


CDN Count Percent
Google 67671 86.5801
jQuery 9222 11.7989
Cloudflare 3996 5.1126
Yandex 2379 3.0438
Microsoft 1300 1.6633
JsDelivr 324 0.4145

Как мы видим, львиная доля ресурсов подключается из Google CDN.
Давайте теперь посмотрим на профиль Google CDN. Будет интересно, но результат предсказуем.
Профиль загрузки скриптов из Google CDN
Скрытый текст
select "jquery" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/jquery/%"
UNION
select "jquerymobile" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/jquerymobile/%"
UNION
select "angularjs" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/angularjs/%"
UNION
select "chrome-frame" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/chrome-frame/%"
UNION
select "dojo" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/dojo/%"
UNION
select "ext-core" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/ext-core/%"
UNION
select "jqueryui" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/jqueryui/%"
UNION
select "mootools" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/mootools/%"
UNION
select "prototype" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/prototype/%"
UNION
select "scriptaculous" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/scriptaculous/%"
UNION
select "swfobject" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/swfobject/%"
UNION
select "webfontloader" as name,count(distinct(pageid)) as count,
(100*count(distinct(pageid))/67198) as percent 
from requests WHERE pageid <= 14802750 AND pageid >= 14489007
and url like "%//ajax.googleapis.com/ajax/libs/webfont/%"
order by count;


Script Count Percent
jquery 59977 89.2541
jqueryui 12437 18.5080
webfontloader 4624 6.8812
swfobject 2347 3.4927
prototype 993 1.4777
scriptaculous 787 1.1712
mootools 445 0.6622
angularjs 353 0.5253
dojo 186 0.2768
chrome-frame 75 0.1116
ext-core 16 0.0238
jquerymobile 1 0.0015

jQuery — действительно самый популярный скрипт. Обходит остальные библиотеки на порядок!..
Заметили интригующий результат? jQuery mobile подключен только на одном сайте!
Это не ошибка, я проверил трижды 🙂
Примерное влияние WordPress

В ходе анализа данных я заметил устойчивый паттерн, вносящий шум в результаты. А именно непонятный параметр в запросах к статике: ?ver=xxx.
Как оказалось, в основном это проделки WordPress! Он добавляет к статике параметр с версией.
К тому же, есть еще несколько характерных паттернов — некоторые сайты добавляют кеш бастинг ко всем ресурсам, включая статику из CDN.

Вернемся к вордпрессу. Я обнаружил интересные закономерности, которые позволяют ввести простую эвристику и оценить, на сколько распространён вордпресс:

  • WordPress использует плагин jquery-migrate. Этот плагин — довольно редкий и используется для того, чтобы вернуть устаревшие фичи jQuery из старых версий в версии 1.9+.
  • Как упоминалось выше, WordPress добавляет параметр с версией к ресурсам.

Используя эти знания, получаем следующее.
Скрытый текст
select count(distinct(pageid)) as count,
(100*count(distinct(pageid))/290835) as percent 
from requests where pageid >= 14489007 and pageid <= 14802750 
and url LIKE "%jquery-migrate%.js\\?ver=%"
or url LIKE "%jquery-migrate%.js\\?v=%";


Число сайтов % от общего количества
29819 10.2529

Как видите — более 10% самых посещаемых сайтов в мире используют wordpress.

P.S. В ходе исследования ни один сайт не пострадал. А вот расширение может что-нибудь сломать. Если вы его все же решите использовать и обнаружите такое поведение — напишите мне в личку.
P.P.S. Если у вас есть интересные вопросы, то задавайте их в комментариях. Я буду обновлять статью и добавлять ответы.

Hosted Libraries  |  Hosted Libraries  |  Google Developers

Проверка текущего статуса Ajax Googleapis уже запущена (08.02.2020).

Что делать, если ajax.googleapis.com недоступен?

Если Ajax Googleapis работает, но вы не можете получить доступ к странице, попробуйте одно из следующих решений:

Кэш браузера. Большинство браузеров использует кэширование страниц для сохранения часто запрашиваемых ресурсов на компьютере пользователя, что позволяет сократить потребление трафика и ускорить работу браузера. Чтобы получить актуальную версию страницы, игнорируя кэш, используйте комбинацию Ctrl + F5.

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

Антивирус и файрвол. Убедитесь, что антивирусные программы или файрвол установленные на ваш компьютер не блокируют доступ к ajax.googleapis.com.

DNS-кэш. DNS-кэш содержит в себе записи о сайтах, которые вы посещали. Если, например, сайт сменил свой IP-адрес, вы не сможете получить к нему доступ. Очистите DNS-кэш на вашем компьютере и повторите попытку.

Альтернативные службы DNS. DNS (Domain Name System) преобразует доменные имена в IP-адреса. Попробуйте использовать альтернативную службу DNS, отличную от вашего провайдера, например, OpenDNS или Google Public DNS.

Ошибки перенаправления на ajax.googleapis.com

Возможно, на сайте ajax.googleapis.com некорректно настроено перенаправление с разных версий. Воспользуйтесь ссылками ниже:
http://ajax.googleapis.com https://ajax.googleapis.com

Другая информация

Заголовок: Hosted Libraries  |  Hosted Libraries  |  Google Developers
Описание: A stable, reliable, high-speed, globally available content distribution network for the most popular open-source JavaScript libraries.

не работает ajax.googleapis.com, сайт недоступен, не работает сайт ajax.googleapis.com, работает ли сайт ajax.googleapis.com, не открывается сайт ajax.googleapis.com, доступность сайта ajax.googleapis.com, не удается получить доступ к сайту ajax.googleapis.com, проверка сайта, ajax.googleapis.com зеркало

Прочее: Check ajax.googleapis.com's SEO: Search engines see www.ajax.googleapis.com and ajax.googleapis.com as two different websites with the same content. This causes them to see a lot of duplicate content, which they don't like. Right now your website is not directing traffic to www.ajax.googleapis.com and ajax.googleapis.com to the same URL. It is crucial that you fix this.
Files from ajax.googleapis.com not loading - Super User: Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.. Visit Stack Exchange
What is ajax.googleapis.com? It seems to be everywhere ...: Many websites that I use now include ajax.googleapis.com as part of their search like expedia, delta air,etc. They have slowed down quite a lot since ajax.googleapis.com has been used by them. What is ajax.googleapis.com and is there any way to get around it?
Tryit Editor v3.6: Save Your Code. If you click the save button, your code will be saved, and you get an URL you can share with others.
Google APIs - Wikipedia: Google APIs is a set of application programming interfaces developed by Google which allow communication with Google Services and their integration to other services. Examples of these include Search, Gmail, Translate or Google Maps. Third-party apps can use these APIs to take advantage of or extend the functionality of the existing services.
jQuery Get Started - w3schools.com: Well organized and easy to understand Web building tutorials with lots of examples of how to use HTML, CSS, JavaScript, SQL, PHP, Python, Bootstrap, Java and XML.
ajax.googleapis.com stopping my Firefox - Super User: 0.0.0.0 ajax.googleapis.com You might as well take a look at a tutorial and a block list to keep you safe. It's a good idea to block the connections to your computer from those domains rather than try to block the script of an already established connection.
Getting Started with jQuery - Quackit Tutorials: Getting Started with jQuery. What is jQuery? How to use jQuery ; In order to use jQuery, you need to include the jQuery libary in your web page. The jQuery library comes as a downloadable .js file. You need to include this file in any document that needs to run jQuery. Alternatively you can link ...
jQuery CDN: The integrity and crossorigin attributes are used for Subresource Integrity (SRI) checking.This allows browsers to ensure that resources hosted on third-party servers have not been tampered with. Use of SRI is recommended as a best-practice, whenever libraries are loaded from a third-party source.
Use of ajax.googleapis.com not China friendly - Meta Stack ...: For technical reasons, we use the Google CDN for the jQuery files (a CDN is a Content Delivery Network - a bit of technology that makes distributing things like images and JavaScript libraries across the world faster) - that's what is hosted on ajax.googleapis.com. This is something many many sites do and as result many people will already have ...
Cloud Translation documentation - Google Cloud Platform: The Cloud Translation API can dynamically translate text between thousands of language pairs. The Cloud Translation API lets websites and programs integrate with the translation service programmatically.
原 ajax.googleapis.com等公共库加载被"墙"的解决方法! - 奋斗码农的博客 - CSDN博客: 最近ajax.googleapis.com的访问被封的很厉害,导致很多网站包括stackoverflow.com无法正常访问。在网上找了一大圈,找到一个解决方案。先在firefox上安装[UC脚本管理...
How to disable HSTS for "ajax.googleapis.com" ? | Firefox ...: Using firefox 39.0.3 now. I have edited the hosts file to redirect "ajax.googleapis.com" to my local machine(127.0.0.1). When I visit the site, firefox tells me this site uses HSTS, and cannot add an exception.
Google AJAX APIs - Google Groups: Google AJAX APIs. Showing 1-22 of 6642 topics. The Web Search API Is Retiring: Dan Ciruli: 8/29/14: Discontinuation of (AJAX) Search APIs
Hosted Libraries | Hosted Libraries | Google Developers: The Google Hosted Libraries is a stable, reliable, high-speed, globally available content distribution network for the most popular, open-source JavaScript libraries.
html - script src="//ajax.googleapis.com, where is the http ...: Teams. Q&A for Work. Setup a private space for you and your coworkers to ask questions and share information. Learn more about Teams
"ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery ...: Examples of sites using "ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js" in HTML/JavaScript/CSS source code.
Google APIs by Google (ajax.googleapis.com) | Better: Google APIs by Google (ajax.googleapis.com) "The Google Hosted Libraries is a … content distribution network for the most popular, open-source JavaScript libraries." - Source. Ethical design violations (Learn more about Ethical Design.) tracker. Monetises you. Decentralised alternatives
Fix Slow Page Loading Waiting for fonts.googleapis.com » WebNots: Frustrated with slow webpage loading showing fonts.googleapis.com message on the status bar? Here is a guide on how to fix waiting for fonts.googlepis.com message and load webpages faster on browsers. Also learn about Google fonts, how it is used on webpages, impacts on page loading speed and privacy.
How to do Ajax Requests with jQuery - Quackit Tutorials: The ajax() Method. jQuery has a number of methods for performing Ajax requests (full list in the jQuery documentation) but they all use the ajax() method behind the scenes. One of the benefits of other methods such as load() is that they provide a simpler way of achieving a desired outcome. In most cases, these methods are all you need.
Was ist "ajax.googleapis.com" — CHIP-Forum: Jquery.min.js heisst die Datei, die geladen wird. Jquery ist dabei (wie alle anderen Sachen auf ajax.googleapis.com auch) eine Open-Source-Bibliothek mit nützlichen Funktionen, die nichts mit Google zu tun hat, das bindet fast jede Seite ein, weil es einfach ganz viele Sachen vereinfacht.
Current Openings | DaveRamsey.com: Our mission is to give hope to everyone, in every walk of life. And for 800 of us (and counting) we are all 100% dedicated to that mission. That's what we mean by work that matters. If you have a heart to help people and want to join a dynamic team, check out our current openings.
Download jQuery | jQuery: jQuery: The Write Less, Do More, JavaScript Library. link jQuery Migrate Plugin. We have created the jQuery Migrate plugin to simplify the transition from older versions of jQuery. The plugin restores deprecated features and behaviors so that older code will still run properly on newer versions of jQuery.
Mortgage Calculator | DaveRamsey.com: Don't know which mortgage is right for you? Use our mortgage calculator to estimate the cost of different loan types and compare interest paid for a 15-year mortgage and a 30-year mortgage. You may be surprised to see how much you can save in interest by getting a 15-year fixed-rate mortgage.
ajax.googleapis.com is freezing my firefox!!!! | Firefox ...: muggle2 you are wrong, ajax.googleapis.com is a CDN repository for the popular jquery javescript functionality plus others that modern websites utilise. If you block this then you will stop the website functioning as it was designed to work. Regards, Renners Read this answer in context 3
Fix Slow Page Loading Waiting for ajax.googleapis.com: Struck with "waiting for ajax.googleapis.com" message in Chrome and other browsers on the sites using Google script libraries. Learn why browsers display "waiting for ajax.googleapis.com" message when loading Google scripts and how to fix slow page loading due to this issue with do it yourself solutions.
Microsoft Ajax Content Delivery Network | Microsoft Docs: The Microsoft Ajax Content Delivery Network (CDN) hosts popular third party JavaScript libraries such as jQuery and enables you to easily add them to your Web applications. For example, you can start using jQuery which is hosted on this CDN simply by adding a <script> tag to your page that points to ajax.aspnetcdn.com.

Отправить ответ

avatar
  Подписаться  
Уведомление о