2012-10-14 39 views
14

Tôi muốn bỏ tiêu đề X-Frame-Option ở phía máy khách trên Firefox (và Chrome). Những gì tôi đã tìm thấy: giải pháp bên Overcoming "Display forbidden by X-Frame-Options" Một phi khách hàng là không phù hợp với mục đích của tôiTắt tùy chọn X-Frame-Option ở phía máy khách

https://bugzilla.mozilla.org/show_bug.cgi?id=707893 này có vẻ là khá chặt chẽ. Tôi đã thử tạo user.js trong thư mục profile với mã user_pref ("b2g.ignoreXFrameOptions", true); nhưng không hoạt động. Mục nhập cuối cùng thứ hai có vẻ ngụ ý biên dịch ff với mã đã sửa đổi? Nếu đây là trường hợp, nó cũng không phải là một giải pháp có thể cho tôi.

Tôi vừa viết một trang HTML nhỏ với một số JS lặp lại một danh sách các video trên YouTube bằng cách tải chúng liên tục vào một khung nội tuyến. Tôi biết youtube hỗ trợ danh sách nhạc nhưng họ hút và tôi không muốn tải xuống các video. Ngoài ra, sẽ rất tuyệt nếu trình duyệt chỉ bỏ qua tùy chọn X-Frame-Option cho các tệp cục bộ. Điều này sẽ phần nào giảm thiểu lỗ hổng bảo mật tôi xé mở bằng cách vô hiệu hóa điều này. Đối với Chrome, một giải pháp sẽ tốt đẹp nhưng điều đó không quan trọng.

Tôi đoán một cách tiếp cận khác là chặn các gói TCP/IP đến có chứa HTTP Respone và loại bỏ dòng tiêu đề này nhưng điều này khá là quá mức.

[sửa] Sử dụng youtube.com/embed là một workaround xấu từ rất nhiều video dont phép được nhúng ...

Trả lời

6

Điều này có thể dễ dàng đạt được sử dụng một Observer HTTP thông qua một phần mở rộng Firefox. người quan sát mà sẽ giống như thế này:

let myListener = 
{ 
    observe : function (aSubject, aTopic, aData) 
    { 
     if (aTopic == "http-on-examine-response") 
     { 
      let channel = aSubject.QueryInterface(Ci.nsIHttpChannel); 

      try 
      { // getResponseHeader will throw if the header isn't set 

       let hasXFO = channel.getResponseHeader('X-Frame-Options'); 

       if (hasXFO) 
       { 
        // Header found, disable it 
        channel.setResponseHeader('X-Frame-Options', '', false); 
       } 
      } 
      catch (e) {} 
     } 
    } 
} 

Bạn có thể tìm thêm thông tin như thế nào để cài đặt các quan sát viên trên MDN [1] [2]

[1]: https://developer.mozilla.org/en/docs/Observer_Notifications#HTTP_requests

[2 ]: https://developer.mozilla.org/en-US/docs/Setting_HTTP_request_headers#Registering

+0

Thông tin thêm về các trình duyệt khác sẽ rất hữu ích là tốt! –

3

Sử dụng mã giả mạo, tôi đã tạo tiện ích bổ sung cho Firefox để hiển thị các trang web có tùy chọn X-Frame trong tiêu đề của chúng, vì vậy chúng sẽ được hiển thị khi được truy cập qua iframe. Nó có thể được tải về/cài đặt ở đây: https://addons.mozilla.org/en-US/firefox/addon/ignore-x-frame-options/

+0

René Houkema, tôi đã thử điều này nhưng không giải quyết trường hợp của tôi tôi để lại thông tin trong phần xem xét tiện ích –

+0

@ René Houkema Tôi đã thử nó cũng không hoạt động và tôi đã in Lỗi: [$ injector: modulerr] Không thể khởi tạo mô-đun demoApp do ... – oshingc

+0

Tuyệt vời - đã hoạt động hoàn hảo! –

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