Tại sao tôi đột nhiên nhận được một vấn đề về khối nội dung hoạt động bị chặn trong các khối bị chặn trong Firefox?


350

Sáng nay, khi nâng cấp trình duyệt Firefox của tôi lên phiên bản mới nhất (từ 22 đến 23), một số khía cạnh chính của văn phòng hỗ trợ (trang web) của tôi đã ngừng hoạt động.

Nhìn vào nhật ký Fireorms, các lỗi sau đã được báo cáo:

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"`

trong số các lỗi khác gây ra bởi cái sau của hai cái trên không được tải.

Điều trên có nghĩa là gì và làm thế nào để tôi giải quyết nó?


Xin chào, tôi đã giải quyết chỉ bằng cách thực hiện: googl.com/maps với //www.googl.com/maps Nó sẽ hoạt động mà không chặn nội dung
Ram Balwad 19/2/2016

liên kết thương mại điện tử đã chết (Lỗi - Không thể tìm thấy trang bạn yêu cầu)
Soleil - Mathieu Prévot

Câu trả lời:


417

Tôi tìm thấy bài viết trên blog này đã làm sáng tỏ một vài điều. Để trích dẫn bit có liên quan nhất:

Nội dung hoạt động hỗn hợp hiện bị chặn theo mặc định trong Firefox 23!

Nội dung hỗn hợp là gì?
Khi người dùng truy cập một trang được phân phát qua HTTP, kết nối của họ sẽ mở cho các cuộc tấn công nghe lén và tấn công trung gian (MITM). Khi người dùng truy cập một trang được phục vụ qua HTTPS, kết nối của họ với máy chủ web được xác thực và mã hóa bằng SSL và do đó được bảo vệ khỏi các kẻ nghe trộm và tấn công MITM.

Tuy nhiên, nếu trang HTTPS bao gồm nội dung HTTP, phần HTTP có thể được đọc hoặc sửa đổi bởi những kẻ tấn công, mặc dù trang chính được phục vụ qua HTTPS. Khi một trang HTTPS có nội dung HTTP, chúng tôi gọi nội dung đó là hỗn hợp. Trang web mà người dùng đang truy cập chỉ được mã hóa một phần, vì một số nội dung được truy xuất không được mã hóa qua HTTP. Trình chặn nội dung hỗn hợp chặn các yêu cầu HTTP nhất định trên các trang HTTPS.

Độ phân giải, trong trường hợp của tôi, chỉ đơn giản là đảm bảo jquerybao gồm như sau (lưu ý loại bỏ giao thức):

<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>

Lưu ý rằng 'khắc phục' tạm thời là nhấp vào biểu tượng 'lá chắn' ở góc trên cùng bên trái của thanh địa chỉ và chọn 'Tắt Bảo vệ trên Trang này', mặc dù điều này không được khuyến nghị vì những lý do rõ ràng.

CẬP NHẬT: Liên kết này từ các trang hỗ trợ Firefox (Mozilla) cũng hữu ích trong việc giải thích những gì cấu thành nội dung hỗn hợp và, như được nêu trong đoạn trên, thực sự cung cấp chi tiết về cách hiển thị trang bất kể:

Hầu hết các trang web sẽ tiếp tục hoạt động bình thường mà không có bất kỳ hành động nào từ phía bạn.

Nếu bạn cần cho phép hiển thị nội dung hỗn hợp, bạn có thể thực hiện điều đó một cách dễ dàng:

Nhấp vào biểu tượng khiên Hỗn hợp nội dung Khiên trong thanh địa chỉ và chọn Tắt Bảo vệ trên Trang này từ menu thả xuống.

Biểu tượng trong thanh địa chỉ sẽ thay đổi thành hình tam giác cảnh báo màu cam Biểu tượng nhận dạng cảnh báo để nhắc nhở bạn rằng nội dung không an toàn đang được hiển thị.

Để hoàn nguyên hành động trước đó (chặn lại nội dung hỗn hợp), chỉ cần tải lại trang.


82
Một cách tiếp cận tốt hơn sẽ là loại bỏ hoàn toàn giao thức : src="//code.jquery.com.... Trình duyệt sẽ sử dụng giao thức mà trang đã được tải.
Máy xay sinh tố

17
Trời ơi! Nhóm FF Dev đã tự bắn vào chân mình với ý tưởng tuyệt vời này, hoàn toàn không thực hiện được. Không kiên trì để vô hiệu hóa các trang và không có danh sách trắng! (dành cho khi bạn biết và tin tưởng một trang web có nội dung hỗn hợp)
Raad

6
@Raad bạn chỉ đơn giản là không thể tin tưởng một trang web có nội dung hỗn hợp. Mặc dù chủ sở hữu trang web có thể vô tội, tất cả các bộ định tuyến mang yêu cầu http có thể không. Tôi muốn gửi báo cáo lỗi cho chủ sở hữu trang web.
chuột alpha

6
@Raad và hàng trăm nếu không phải hàng ngàn trang web đang trong quá trình hiển thị các tiêu đề có thể chứa thông tin nhận dạng cá nhân có nghĩa là được mã hóa bằng kết nối SSL ... thật lòng, tôi không thấy Nhóm FF Dev là thực thể vô trách nhiệm trong việc này vấn đề ...
Assimilater

3
Vô cùng bực bội khi nó đang chặn những hành động hoàn toàn vô hại. Nói về zip! Tôi có một plugin sử dụng Ziptastic để tra cứu thành phố và trạng thái của mã zip mà bạn nhập vào một mẫu địa chỉ. Plugin này bị hỏng: tất cả những gì tôi muốn làm là sử dụng API yên tĩnh để lấy một đối tượng JSON nhỏ - không có xúc xắc. Đây là TSA của bảo mật trình duyệt! Hãy để chúng tôi có quần trở lại, vì lợi ích tào lao!
Chris Baker

136

Điều đó có nghĩa là bạn đang gọi http từ https. Bạn có thể sử dụng src="//url.to/script.js"trong thẻ script của mình và nó sẽ tự động phát hiện.

Thay phiên, bạn có thể sử dụng https trong srcngay cả khi bạn sẽ xuất bản nó lên trang http. Điều này sẽ tránh các vấn đề tiềm năng được đề cập trong các ý kiến.


1
Chỉ cần một lưu ý, nếu được sử dụng trên một trang web được lưu trữ cục bộ, nó có thể khiến trình duyệt tìm kiếm tập lệnh không hiệu quả, làm chậm đáng kể việc tải trang
binaryfunt 24/07/2015

52

Trong trường hợp không có tính năng danh sách trắng, bạn phải chọn "tất cả" hoặc "không có gì". Bạn có thể vô hiệu hóa hoàn toàn chặn nội dung hỗn hợp.


Sự lựa chọn không có gì

Bạn sẽ cần phải vô hiệu hóa vĩnh viễn việc chặn nội dung hỗn hợp cho hồ sơ hoạt động hiện tại.

Trong "Awesome Bar," gõ "about: config". Nếu đây là lần đầu tiên bạn sẽ nhận được "Điều này có thể làm mất hiệu lực bảo hành của bạn!" thông điệp.

Có bạn sẽ cẩn thận. Có bạn hứa!

Tìm security.mixed_content.block_active_content . Đặt giá trị của nó thành false .


Sự lựa chọn

Câu trả lời của iDevelApp là tuyệt vời.


1
Bạn có biết để kích hoạt nội dung hỗn hợp trên chrome?
Faizan

1
@Faizan: Từ câu trả lời này : "Trong thanh địa chỉ ở đầu bên phải phải là biểu tượng 'lá chắn', bạn có thể nhấp vào đó để chạy nội dung không an toàn."
fuglede

27

Đặt <meta>thẻ bên dưới vào <head>phần tài liệu của bạn để buộc trình duyệt thay thế các kết nối không an toàn (http) thành các kết nối được bảo mật (https). Điều này có thể giải quyết vấn đề nội dung hỗn hợp nếu kết nối có thể sử dụng https.

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

Nếu bạn muốn chặn thì thêm thẻ bên dưới vào <head>thẻ:

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

1
Không hoạt động trong chrome? làm việc trong firefox. upgrade-insecure-requestsdường như nâng cấp các cuộc gọi http tp https.
Aniket Thakur

1
Đây có phải là một ý tưởng tồi? Không có lý do mà chính sách bảo mật tồn tại?
medley56


10

Nó đưa ra lỗi vì bảo mật. để làm điều này, vui lòng sử dụng "https" chứ không phải "http" trong url trang web.

Ví dụ :

   "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

Trong trang có liên quan thực hiện cuộc gọi nội dung hỗn hợp https đến http không thể truy cập được, chúng tôi có thể thêm mục sau vào mục có liên quan và loại bỏ lỗi nội dung hỗn hợp.

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

5

Tôi gặp vấn đề tương tự vì tôi đã mua một mẫu CSS và nó đã lấy một tệp javascript bên ngoài http://whatever.js.com/javascript.js. Tôi đã đi đến trang đó trong trình duyệt của mình và sau đó đổi nó thành https://whatever...sử dụng SSL và nó đã hoạt động, vì vậy trong thẻ javascript HTML của tôi, tôi chỉ thay đổi URL để sử dụng httpsthay vì httpvà nó hoạt động.


4

Để buộc chuyển hướng trên giao thức https, bạn cũng có thể thêm lệnh này trong .htaccess trên thư mục gốc

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

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

3

@Blender Nhận xét là cách tiếp cận tốt nhất. Không bao giờ mã cứng giao thức ở bất cứ đâu trong mã vì nó sẽ khó thay đổi nếu bạn chuyển từ httpsang https. Vì bạn cần chỉnh sửa thủ công và cập nhật tất cả các tập tin.

Điều này luôn luôn tốt hơn vì nó tự động phát hiện giao thức.

src="//code.jquery.com

2

Tôi đã tìm thấy nếu bạn gặp sự cố với việc bao gồm hoặc trộn trang của mình với nội dung như http : //www.example.com, bạn có thể khắc phục điều đó bằng cách đặt // www .example.com thay thế


Điều này làm việc cho tôi, cảm ơn. Bạn có thể giải thích cho tôi những gì đang xảy ra?
Mantej Singh

2

Tôi đã gặp phải vấn đề tương tự khi trang web của tôi chuyển từ http sang https. Chúng tôi đã thêm quy tắc cho tất cả yêu cầu chuyển hướng http sang https.

Bạn cần thêm quy tắc chuyển hướng cho yêu cầu liên trang, nhưng bạn phải xóa quy tắc chuyển hướng cho js / css bên ngoài.


0

Tôi chỉ khắc phục vấn đề này bằng cách thêm đoạn mã sau vào tiêu đề:

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

-9

Nếu máy chủ ứng dụng của bạn là weblogic, thì hãy đảm bảo rằng mục nhập ON của WLProxySSL (và cũng đảm bảo rằng nó không nên được nhận xét) trong tệp weblogic.conf trong thư mục conf của máy chủ web. Sau đó khởi động lại máy chủ web, nó sẽ hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.