JavaScript / Greasemonkey: как избежать предупреждения безопасности FireFox при отправке формы с защищенной страницы

Я пишу сценарий Greasemonkey для соединения двух внутренних веб-страниц компании. Один из них - SSL, а другой - небезопасный и доступен только через POST-запрос. Если я создаю скрытую форму на защищенной странице и отправляю ее через onclick() в <a>, она работает нормально, но FF выдает предупреждение:

Although this page is encrypted, the information you have entered is to be sent over an unencrypted connection and could easily be read by a third party.

Are you sure you want to continue sending this information?"

К небезопасной странице нельзя получить доступ через SSL, а к другой нельзя получить доступ без него, и я не могу изменить ни один из серверов = \ Есть ли способ избежать этого предупреждения, выполнив какой-то JavaScript / Greasemonkey перенаправить магию? Спасибо!

Обновлено: предупреждение нельзя отключить (по довольно веским причинам, поскольку в противном случае трудно определить, безопасно ли то, что вы собираетесь отправить). Мне в основном интересно, есть ли способ POST в JavaScript, не выглядящий так, как будто вы отправляете форму.

Пишете скрипт GreaseMonkey для корпоративных целей? Это потрясающе!

Adam Rezich 10.12.2008 19:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
3 845
4

Ответы 4

Это параметр конфигурации браузера, который не может (или не должен) изменяться с помощью Javascript.

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

Вы можете настроить новый сайт SSL в качестве прокси, который просто передает данные обратно на небезопасный сайт. Или просто попросите всех ваших пользователей отключить это конкретное предупреждение системы безопасности. (Извините, команда FF, но это не очень полезное сообщение для начала.)

Это может быть возможно, выполнив GM_xmlhttpRequest. например.,

GM_xmlhttpRequest({
  method: 'POST',
  url: 'http://your.insecure.site.here',
  onload: function(details) {

      // look in the JavaScript console 
      GM_log(details.responseText);

      /* This function will be called when the page (url) 
      has been loaded. Do whatever you need to do with the remote page here.*/
  }
});

API / подробнее здесь: GM_xmlhttpRequest вики

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

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

В противном случае люди могли бы создать ужасно плохие формы, которые ПУБЛИВАЮТ данные вашей кредитной карты или другую конфиденциальную информацию в открытом виде через небезопасный Интернет без предупреждения. Поскольку эта конфиденциальная информация проходит через Интернет, она почти наверняка проходит через сети, контролируемые людьми, с которыми вы не хотели бы делиться этими конфиденциальными данными. Отсюда и предупреждение. Удалите его или разрешите всегда игнорировать, и вы уберете надежность SSL, TLS и HTTPS, на которые люди привыкли полагаться в электронной коммерции и т. д.

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

Давайте здесь будем предельно ясны. Проблема с владельцами сайтов, НЕТ с командой разработчиков Firefox или Mozilla. Как я уже сказал, иногда может быть целесообразно отправлять данные POST в открытом виде с безопасного сайта, но невозможно определить, когда это имеет место, без вмешательства человека. Вот почему это сообщение нельзя подавить с помощью общей политики, да и не должно.

Вполне может быть целесообразно добавить конкретное исключение к определенной форме, идентифицированной URI, потому что пользователь может определить, что вся информация в форме не является конфиденциальной, при условии, что информация, введенная в форму, не изменяется. Однако AFAIK команда Mozilla этого не сделала.

Я заметил, что многие люди путают это предупреждающее сообщение с предупреждением о смешанном содержимом HTTP и HTTPS, что является совершенно другой ситуацией, но, к сожалению, отображается с очень похожим предупреждающим сообщением. В этой ситуации часть содержимого страницы защищена HTTPS, а часть - нет. Это не проблема для обычного веб-серфинга, и, например, нормально иметь защищенный контент с незащищенной рекламой, такой как пример MSDN, приведенный в ответах.

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

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

Pondlife 02.05.2013 01:20

Другие вопросы по теме