Firefox에서 갑자기“혼합 활성 콘텐츠 차단 로딩”문제가 발생하는 이유는 무엇입니까?


350

오늘 아침, Firefox 브라우저를 최신 버전 (22에서 23으로)으로 업그레이드 할 때 백 오피스 (웹 사이트)의 일부 주요 기능이 작동을 멈췄습니다.

Firebug 로그를 보면 다음 오류가보고되었습니다.

Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`

위의 두 가지 중 후자가로드되지 않은 다른 오류 중.

위의 의미는 무엇이며 어떻게 해결합니까?


: 이봐, 난이 일에 의해서만 해결 한 googl.com/maps을 그것은 콘텐츠를 차단하지 않고 작동 //www.googl.com/maps로
램 Balwad

전자 상거래 링크가 죽었습니다 (오류-요청한 페이지를 찾을 수 없습니다)
Soleil-Mathieu Prévot

답변:


416

나는 발견 이 블로그 게시물 몇 가지를 정리. 가장 관련있는 비트를 인용하려면 :

Firefox 23에서는 기본적으로 혼합 활성 컨텐츠가 차단됩니다!

혼합 컨텐츠 란 무엇입니까?
사용자가 HTTP를 통해 제공되는 페이지를 방문하면 도청 및 MITM (man-in-the-middle) 공격을 위해 연결이 열립니다. 사용자가 HTTPS를 통해 제공되는 페이지를 방문하면 웹 서버와의 연결이 SSL로 인증 및 암호화되므로 도청 및 MITM 공격으로부터 보호됩니다.

그러나 HTTPS 페이지에 HTTP 컨텐츠가 포함 된 경우 기본 페이지가 HTTPS를 통해 제공 되더라도 공격자가 HTTP 부분을 읽거나 수정할 수 있습니다. HTTPS 페이지에 HTTP 컨텐츠가 있으면 해당 컨텐츠를 "혼합"이라고합니다. 일부 콘텐츠는 HTTP를 통해 암호화되지 않은 상태로 검색되므로 사용자가 방문하는 웹 페이지는 부분적으로 만 암호화됩니다. 혼합 컨텐츠 차단기는 HTTPS 페이지에서 특정 HTTP 요청을 차단합니다.

필자의 경우 해결 방법은 단순히 jquery포함이 다음과 같은지 확인하는 것입니다 (프로토콜 제거에 유의하십시오).

<link rel="stylesheet" href="https://stackoverflow.com//code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css" type="text/css">
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"></script>

임시 '수정'이 있지만, 주소 표시 줄의 왼쪽 상단 모서리에있는 '방패'아이콘을 클릭하고 '이 페이지에 비활성화 보호'를 선택하는 것입니다 참고 하지 분명한 이유 좋습니다.

업데이트 : Firefox (Mozilla) 지원 페이지 의이 링크 는 혼합 된 내용을 구성하는 내용을 설명하는 데 유용하며 위 단락에서 주어진 것처럼 실제로 페이지를 표시하는 방법에 대한 세부 정보를 제공합니다.

대부분의 웹 사이트는 사용자가 아무런 조치를 취하지 않아도 계속 정상적으로 작동합니다.

혼합 컨텐츠를 표시해야하는 경우 쉽게 수행 할 수 있습니다.

주소 표시 줄에서 방패 아이콘 Mixed Content Shield를 클릭하고 드롭 다운 메뉴에서이 페이지에서 보호 비활성화를 선택하십시오.

검색 주소창의 아이콘이 주황색 경고 삼각형 경고 ID 아이콘으로 바뀌어 안전하지 않은 콘텐츠가 표시되고 있음을 알려줍니다.

이전 작업을 되돌리려면 (혼합 내용 다시 차단) 페이지를 다시로드하십시오.


82
더 좋은 방법은 프로토콜을 완전히 제거하는 것 src="//code.jquery.com...입니다. 브라우저는 페이지가로드 된 프로토콜을 사용합니다.
Blender

17
아! FF Dev Team은 멋진 아이디어, 완전히 냉정한 구현으로 발을 딛었습니다. 페이지 비활성화에 대한 지속성 및 화이트리스트가 없습니다! (콘텐츠가 혼합 된 사이트를 알고 신뢰할 때)
Raad

6
@Raad 콘텐츠가 혼합 된 사이트는 단순히 신뢰할 수 없습니다. 사이트 소유자는 결백 할 수 있지만 http 요청을 전달하는 모든 라우터가 그렇지 않을 수 있습니다. 사이트 소유자에게 버그 보고서를 제출했습니다.
alpha-mouse

6
@Raad와 수천 개의 사이트가 SSL 연결로 암호화되어야하는 개인 식별 정보를 포함 할 수있는 헤더를 노출하는 과정에 있다면 수백 가지가 있습니다 ... 문제 ...
Assimilater

3
무해한 행동을 완전히 막을 때 매우 실망합니다. 지퍼라고하면! Ziptastic을 사용하여 주소 양식에 입력 한 우편 번호의 도시와 주를 조회하는 플러그인이 있습니다. 이 플러그인은 깨졌습니다.하고 싶은 것은 편안한 API를 사용하여 작은 JSON 객체를 잡는 것입니다. 이것이 브라우저 보안의 TSA입니다! 쓰레기를 위해 바지를 다시 가져 오자!
Chris Baker

136

https에서 http를 호출한다는 의미입니다. src="//url.to/script.js"스크립트 태그에서 사용할 수 있으며 자동 감지됩니다.

또는 srchttp 페이지에 게시 할 경우에도 https를 사용할 수 있습니다 . 이것은 의견에 언급 된 잠재적 인 문제를 피할 것입니다.


1
로컬에 저장된 웹 페이지에 사용 된 경우 그냥 참고, 그것은 크게 페이지의 로딩 지연, 스크립트의 fruitlessly 검색 브라우저가 발생할 수 있습니다
binaryfunt

52

화이트리스트 기능이 없으면 "모두"또는 "아무것도"선택해야합니다. 혼합 컨텐츠 차단을 완전히 비활성화 할 수 있습니다.


Nothing Choice

현재 활성 프로파일에 대한 혼합 컨텐츠 차단을 영구적으로 비활성화해야합니다.

"Awesome Bar"에 "about : config"를 입력하십시오. 이번이 처음이라면 "보증이 무효화 될 수 있습니다!"라는 메시지가 나타납니다. 메시지.

네 조심해야합니다. 네 약속합니다!

security.mixed_content.block_active_content를 찾으십시오 . 값을 false로 설정하십시오 .


모든 선택

iDevelApp 의 답변은 훌륭합니다.


1
크롬에서 혼합 콘텐츠를 사용하는 것을 알고 있습니까?
파이 잔

1
@Faizan : 이 답변에서 : "오른쪽 끝에있는 주소 표시 줄에 '방패'아이콘이 있어야 안전하지 않은 콘텐츠를 실행할 수 있습니다."
fuglede

27

브라우저가 보안되지 않은 연결 (http)을 보안 연결 (https)로 바꾸도록 하려면 아래의 <meta>태그를 <head>문서 섹션에 넣으십시오 . 연결이 https를 사용할 수있는 경우 혼합 컨텐츠 문제를 해결할 수 있습니다.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

차단하려면 아래 태그를 태그에 추가하십시오 <head>.

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">

1
크롬에서 작동하지 않습니까? 파이어 폭스에서 일했습니다. upgrade-insecure-requestshttp tp https 호출을 업그레이드하는 것 같습니다.
Aniket Thakur

1
이것은 나쁜 생각입니까? 보안 정책이 존재하는 이유가 없습니까?
medley56


10

보안으로 인해 오류가 발생했습니다. 이를 위해 웹 사이트 URL에서 "http"가 아닌 "https"를 사용하십시오.

예를 들면 다음과 같습니다.

   "https://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
   "https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"

7

액세스 할 수없는 혼합 컨텐츠 https를 http 호출로 만드는 관련 페이지에서 관련 항목에 다음 항목을 추가하고 혼합 컨텐츠 오류를 제거 할 수 있습니다.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

5

CSS 템플릿을 구입하고 외부 자바 스크립트 파일을 통해 자바 스크립트를 가져 오기 때문에 동일한 문제가 발생했습니다 http://whatever.js.com/javascript.js. 브라우저에서 해당 페이지로 이동 한 다음 https://whatever...SSL 을 사용하여 변경 했으며 HTML 자바 스크립트 태그에서 URL https대신 URL을 변경하여 http작동했습니다.


4

https 프로토콜에서 강제로 리디렉션하려면 루트 폴더의 .htaccess에이 지정 문을 추가 할 수도 있습니다.

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

3

@Blender Comment가 가장 좋습니다. 결코 하드 코드 당신이 이동할 경우 변경하기 어려울 것 같은 코드의 프로토콜 어느 곳 http으로 https. 모든 파일을 수동으로 편집하고 업데이트해야하므로.

프로토콜을 자동으로 감지하므로 항상 좋습니다.

src="//code.jquery.com

2

http://www.example.com 과 같은 페이지를 포함하거나 혼합하는 데 문제가있는 경우 // www .example.com을 대신 하여 문제를 해결할 수 있습니다.


이것은 나를 위해 일했습니다. 감사합니다. 무슨 일인지 설명해 주실 수 있습니까?
Mantej Singh

2

내 사이트가 http에서 https로 이동할 때 동일한 문제에 직면했습니다. http를 https로 리디렉션하는 모든 요청에 ​​대한 규칙을 추가했습니다.

사이트 간 요청에 대한 리디렉션 규칙을 추가해야하지만 외부 js / css에 대한 리디렉션 규칙을 제거해야합니다.


0

헤더에 다음 코드를 추가 하여이 문제를 해결했습니다.

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

-9

응용 프로그램 서버가 weblogic 인 경우 웹 서버의 conf 디렉토리에있는 weblogic.conf 파일에 WLProxySSL ON 항목이 있는지 확인해야합니다. 그런 다음 웹 서버를 다시 시작하면 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.