2017-07-14 13 views
5

http://username:[email protected]/snapGiải pháp cho các yêu cầu Nguồn cấp dữ liệu có URL chứa thông tin xác thực được nhúng bị chặn

Tôi đã sử dụng phương pháp thông tin xác thực được nhúng này để truy xuất ảnh từ Máy ảnh IP. Bây giờ cập nhật Google Chrome đã chặn phương pháp này, tôi gặp lỗi này:

[Deprecation] Subresource requests whose URLs contain embedded credentials (e.g. https://user:[email protected]/) are blocked. See https://www.chromestatus.com/feature/5669008342777856 for more details.

Tôi đã thử một phương pháp khác, bằng cách sử dụng JQuery Ajax với xác thực cơ bản. Nhưng thay vào đó tôi lại gặp phải một lỗi khác.

XMLHttpRequest cannot load example.com. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://example.com ' is therefore not allowed access. The response had HTTP status code 401.

Tôi không thể thực hiện bất kỳ thay đổi nào đối với Dịch vụ web trong máy ảnh Ip để cho phép yêu cầu miền chéo.

Có vẻ như tôi chỉ còn lại 1 tùy chọn, đó là truy xuất hình ảnh từ phía máy chủ và đưa hình ảnh đó vào trình duyệt? Nhưng điều đó sẽ lãng phí băng thông máy chủ của tôi.

Bạn có đề xuất/ý tưởng nào khác không?

Cảm ơn.

+0

Tôi muốn biết chi tiết cách bạn tìm nạp ảnh trước đó? Vui lòng cập nhật câu hỏi của bạn với những câu hỏi này. – 31piy

+0

hi, được cập nhật với một ví dụ – user3162662

+0

Trả lời được cung cấp trong liên kết bên dưới có thể giúp bạn ...
https://stackoverflow.com/a/7190487/3548578 – Dheeresh

Trả lời

0

Một cách để thực hiện việc này là sử dụng trình chặn chặn yêu cầu chẳng hạn như ModHeader. Nó có thể được cài đặt như một phần mở rộng cho Chrome, và nó có khả năng cần thiết để giải quyết vấn đề của bạn.

Vì vậy, bạn cần phải làm theo phương pháp này:

  1. Cài đặt tiện ích từ Cửa hàng Chrome trực tuyến.
  2. Tạo chuỗi bằng cách nối tên người dùng và mật khẩu của bạn, chẳng hạn như được phân tách bằng dấu hai chấm (username:password). Đọc HTTP Basic Authorization.
  3. Base64 Encode chuỗi mà bạn vừa tạo.
  4. Mở bảng cài đặt của ModHeader.
  5. Trong phần Yêu cầu tiêu đề, thêm tiêu đề có tên là Authorization và giá trị là Basic encoded_string. Thay thế encoded_string bằng chuỗi bạn đã mã hóa ở bước 3. Tham khảo ảnh chụp nhanh bên dưới.
  6. Bây giờ, bạn có thể tìm trực tiếp ảnh của mình mà không cần trước ảnh với username:[email protected]. Vì vậy, URL của bạn sẽ trông giống như http://example.com/snap.

Intercepting request headers using ModHeader

Tại sao nó giải quyết vấn đề?

Về cơ bản những gì bạn đã làm trước đây là chuyển các chi tiết ủy quyền trong chính URL đó. Đây là một kịch bản phổ biến nhưng rõ ràng cho thấy các thông tin đăng nhập và do đó, không phải là một phương pháp an toàn.

May mắn thay, điều tương tự cũng có thể được thực hiện bằng cách sử dụng tiêu đề Authorization. Bạn chỉ cần chuyển thông tin đăng nhập dưới dạng mã hóa. ModHeader làm điều đó cho bạn. Nó chặn mỗi yêu cầu của trình duyệt của bạn và gắn thêm tiêu đề này vào nó.

Nhưng hãy cẩn thận, nó chặn tất cả các yêu cầu. Do đó, nó được khuyến khích để chỉ sử dụng nó khi bạn đang lấy hình ảnh từ camera IP. Đối với tất cả các tình huống khác, hãy nhớ tắt nó.

+0

xin lỗi tôi không cần giải pháp cụ thể cho trình duyệt và cũng có thể, việc giáo dục khách hàng để cài đặt tiện ích mở rộng này là không thể. Cảm ơn các giải pháp. Tôi đã học được điều gì đó :) – user3162662

+0

@ user3162662 - Tôi muốn biết thêm về mã tìm nạp những ảnh này từ camera IP. Có lẽ tôi cũng có thể giúp điều đó. Vui lòng chia sẻ chi tiết mã cụ thể trong câu hỏi của bạn. Không có nó, không ai có thể cung cấp giải pháp tuyệt đối cho vấn đề này. – 31piy

Các vấn đề liên quan