Один из способов снизить риск - запустить контрольную сумму для файла, полученного от Google, и сравнить ее с проверенной контрольной суммой, которая уже находится в вашем распоряжении.
В ответ на вопрос о том, изменяет ли Google эти файлы каким-либо образом, сотрудник Google Бен Лисбаккен предложил сравнить контрольные суммы MD5 файла, предоставленного Google, с канонической версией того же файла, полученной из его домашний сайт сопровождающих. Прочитайте комментарий восемь на связанном сайте для контекста.
Если вы беспокоитесь о перехвате DNS, то, конечно, те же проблемы относятся и к файлу, полученному с «оригинального» сайта. Вы также, вероятно, не хотите нести штраф за скорость выполнения контрольной суммы для файла jQuery при каждом запросе - если только вы не невероятно параноидальны. И, конечно же, это исключит все преимущества использования CDN.
Но если вы только параноик, вы можете попробовать что-то вроде этого:
Убедитесь, что вы ссылаетесь на уникальную и специфическую версию файла jQuery от Google. Например, сделайте это:
http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
а не это:
http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js
Последняя версия может вернуть 1.4.2 сейчас, но 1.4.3 завтра. Если у вас есть сочетание потребностей http и https, вы можете использовать URL-адреса, относящиеся к протоколу, например:
//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
Изначально сгенерируйте и сохраните собственную контрольную сумму для этого файла.
- Периодически повторяйте процесс и убедитесь, что новая контрольная сумма совпадает со старой. Если этого не произойдет, прозвучат клаксоны.
Конечно, вы можете сделать это программно. Вы решаете, какой интервал имеет смысл. Каждую минуту? Каждые пять? Теперь у вас есть возможность автоматического выключателя, чувствительность которого вы можете настроить в соответствии со своими предпочтениями. Конечно, подпрограмма «монитор» не обязательно должна выполняться синхронно внутри приложения, которое вы хотите защитить; возможно, для этой цели вы запускаете небольшое служебное приложение на том же сервере.
Достаточно просто проверить: просто измените сохраненный хеш. Поскольку вы ссылаетесь на конкретную версию файла, кнопка паники не будет нажиматься при каждом обновлении второстепенной версии. Если вы хотите перейти на новую версию jQuery, измените URL-адрес AJAX API на своем сайте и сохраните новый хеш.