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

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

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

Вы уверены, что хотите продолжить отправку этой информации? "

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

РЕДАКТИРОВАТЬ: предупреждение не может быть отключено (по довольно веским причинам, так как трудно сказать, является ли то, что вы собираетесь отправить, безопасно, в противном случае). Мне больше всего интересно, есть ли способ POST в JavaScript, не смотря на то, что вы отправляете форму.

Ответы [ 4 ]

2 голосов
/ 11 декабря 2008

Это может быть возможно при выполнении 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 wiki

1 голос
/ 02 мая 2013

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

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

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

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

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

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

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

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

1 голос
/ 10 декабря 2008

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

0 голосов
/ 10 декабря 2008

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

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

...