букмарклет на странице https
Я пытаюсь сделать букмарклет для использования на youtube и других видео-сайтах, чтобы легко получать информацию из видео и хранить ее в другом месте.
С сегодняшнего дня, по-видимому, я больше не могу этого делать, поскольку youtube принудительно подключается к https-соединению, а из того, что я прочитал в окне консоли chrome, букмарклет не работает на https-странице. Есть ли обходной путь?
Вот отредактированный код:
javascript:(function(){var jsCode=document.createElement('script');jsCode.setAttribute('src','http://[mysite]/b/enter.php?i=userid&r='+Math.random());document.body.appendChild(jsCode);}());
4 ответа:
Google Chrome (и, возможно, другие браузеры?) блокирует http-ресурсов от несанкционированного доступа из документа по протоколу HTTPS. Это делается для предотвращения" смешанного контента " атак, в которых небезопасные http-скрипты могут бытьперехвачены злоумышленником при передаче по сети и изменены для выполнения любого вида вредоносной деятельности (например, утечки файлов cookie или конфиденциальной информации на странице третьей стороне). Такое нарушение аннулировало бы любую защиту, предоставленную HTTPS.
Хром, используемый для обеспечения заметное предупреждение о том, что небезопасный ресурс был заблокирован, но теперь он больше не делает этого, и все небезопасные загрузки молча отказывают. Единственное решение, доступное вам на данный момент, - это использовать HTTPS самостоятельно, когда вы обслуживаете скрипт.
В Firefox, если вы хотите запустить букмарклет, который ссылается на http на странице https, способ обойти это-временно отключить
security.mixed_content.block_active_content
. Есть два способа сделать это.Веселитесь и будьте осторожны. Здесь будут драконы!
Перейдите в
about:config
на новой вкладке, найдитеsecurity.mixed_content.block_active_content
и затем переключите значение наfalse
. Запустите свой букмарклет, а затем переключите его обратно наtrue
(поскольку вы, вероятно, хотите, чтобы он был включен большую часть времени).Используйте надстройку / расширение для переключения блока. Появился быстрый поиск переключение смешанного активного содержимого , и быстрый тест, казалось, работал хорошо. Могут быть и другие.
Букмарклет не запускается на странице https
Почему бы и нет?
Попробуйте сами перейти на HTTPS-домен. Обычно содержимое HTTP блокируется, когда вы находитесь в домене HTTPS.
Я создал обходное "исправление" для этой проблемы, используя Greasemonkey userscript. Теперь вы можете иметь букмарклеты на всех CSP и https:// сайтах, а также иметь свои букмарклеты в красивом, легко редактируемом библиотечном файле вместо того, чтобы по отдельности сжиматься в закладку.