JavaScript không an toàn JavaScript cố gắng truy cập khung với URL Lỗi lỗi liên tục được tạo trong trình kiểm tra bộ webkit Chrome


129

Chrome (hoặc bất kỳ trình duyệt webkit nào khác) ném một tấn "Cố gắng JavaScript không an toàn để truy cập khung bằng URL ..." khi làm việc với API Facebook chẳng hạn.

Nó không can thiệp vào hoạt động thực tế, nhưng về cơ bản, nó làm cho bảng điều khiển javascript không thể sử dụng được.

Tôi muốn biết liệu có cách nào để khắc phục các lỗi này cụ thể trong bảng điều khiển không? Hoặc nếu có những giải pháp khác mà các bạn có thể nghĩ ra, tôi sẽ thực sự đánh giá cao nó.

Cảm ơn.


1
Hiện tại tôi đang sử dụng cách giải quyết là chỉ có tab bảng điều khiển được đặt để chỉ hiển thị nhật ký. Tôi đang tìm kiếm một giải pháp cho phép tôi theo dõi lỗi (không phải là giải pháp này).
Neil Sarkar

sẽ rất tốt nếu cung cấp một mẫu về cách bạn đang sử dụng API. có rất nhiều lý do tại sao điều này có thể xảy ra.
Kinlan

Tôi biết ý của bạn là gì, nhưng tôi khá chắc chắn điều này xảy ra với bất kỳ tích hợp facebook nào. Ví dụ: mở bảng điều khiển js webkit của bạn trên trang web của Domino này (đang sản xuất) pizzaholdouts.com
Neil Sarkar

1
Không phải đơn giản là bạn đang thử kịch bản chéo trang? Bạn đang yêu cầu địa chỉ api facebook từ máy chủ của riêng bạn? Cách là một chút khác nhau.
Tomasz Durka

4
không yêu cầu bất cứ điều gì, tôi chỉ cần đưa vào công cụ soạn thảo để có được js sdk làm việc của nhà phát
triển.facebook.com/docs/reference/javascript

Câu trả lời:


19

Bạn có thể cho phép các yêu cầu tên miền chéo trong quá trình thử nghiệm bằng cách chạy chrome với --disable-web-securitytùy chọn dòng lệnh. Điều này có lẽ sẽ thoát khỏi lỗi (và cho phép FB theo dõi thử nghiệm của bạn;)


hmm thật hấp dẫn ... có cách nào để đặt tùy chọn đó ngoài dòng lệnh không? Tôi đã thử điều này từ dòng lệnh: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securityvà nó dường như hoạt động! nhưng nó nói rằng nó không thể tải hồ sơ của tôi ... có ý tưởng nào để đặt cờ đó từ trong ứng dụng hoặc đặt nó thành mặc định không?
Neil Sarkar

4
như một bản cập nhật, hiện tôi đang sử dụng chrome độc ​​quyền và tôi vẫn rất muốn biết câu trả lời cho điều này
Neil Sarkar

2
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
Sandstrom

4

Điều này xảy ra khi một nguồn từ một tên miền khác được tải và cố gắng truy cập document.cookie. Nó xảy ra với các nguồn đầu (thẻ script) cũng như với các tài liệu iframe cố gắng truy cập document.cookie vì một số lý do.


4

Có vấn đề gì vậy?

Hàng tấn Unsafe JavaScript attempt to access frame with URL...thông báo lỗi trong bảng điều khiển Chrome JS.

Như @thechrisproject chỉ ra , những lỗi này là do nhiều api và vật dụng của bên thứ 3 có uy tín, bao gồm nhưng không giới hạn ở:

  • SDK Facebook Facebook
  • Vimeo Iframe nhúng
  • Google Maps Iframe nhúng

Hiểu biết của tôi về lý do : (vui lòng sửa cho tôi nếu tôi sai)

Chrome có các cài đặt bảo mật chặt chẽ hơn và / hoặc hiển thị nhiều lỗi như vậy hơn các trình duyệt cạnh tranh. Các tác giả API / widget / nhúng cố gắng thực hiện những điều (tên miền chéo / khung) sẽ không hoạt động trong tất cả các trình duyệt (có thể là cho báo cáo / phân tích của riêng họ) nhưng điều đó thực sự không ảnh hưởng đến tiện ích của tiện ích của họ nếu nó không công việc (chỉ gây ra nhiều lỗi khó chịu)

Câu trả lời nhanh

KHÔNG, bạn không thể ( chỉ ) loại bỏ các lỗi này trong bảng điều khiển chrome.

Các giải pháp?

  • Đối phó với nó. Các lỗi này không thực sự phá vỡ các apis và widget của bên thứ 3 này, chúng chỉ khiến giao diện điều khiển khó sử dụng hơn nhiều
  • bạn có thể đặt bàn điều khiển để chỉ đăng nhập các thông báo Cảnh báo, Nhật ký hoặc Gỡ lỗi. Điều này sẽ ẩn TẤT CẢ lỗi.
  • bạn có thể sử dụng một trình duyệt khác
  • Như @Dagg_Nợi. chỉ ra , bạn có thể cho phép các yêu cầu tên miền chéo bằng cách chạy chrome với --disable-web-securitytùy chọn dòng lệnh. Thêm thông tin tại đây: Vô hiệu hóa chính sách nguồn gốc tương tự trong Chrome . Lưu ý rằng cài đặt này sẽ ảnh hưởng tiêu cực đến bảo mật trình duyệt của bạn. Tôi có 2 phím tắt chrome để tôi có thể mở nó có hoặc không có cờ này.

3

Vì chúng tôi không thể đổ lỗi cho mọi người từ Google khi xây dựng một trình duyệt an toàn như vậy, tôi nghĩ giải pháp tốt nhất là sử dụng các giải pháp phía máy chủ của Facebook (ví dụ: SDK SDK), nó sẽ giúp bạn tiết kiệm rất nhiều, rất nhiều, rất nhiều, đau đầu nhiều Ưu điểm duy nhất tôi thấy khi sử dụng SDK javascript FB là đăng nhập popup mà bạn có thể tự làm bằng javascript / jQuery.


6
Tại sao sử dụng SDK PHP (hoặc SDK phía máy chủ khác) sẽ tiết kiệm được nhiều vấn đề đau đầu?
Steve Horn

@steve: Thực tế là Chrome đang chặn yêu cầu không an toàn trả lời rất nhiều về cách xử lý phía máy khách không an toàn.
Jhourlad Estrella

2
Ô nhiễm IMHO của bảng điều khiển JS không nên được xem xét chính trong việc quyết định nên đặt phía máy chủ logic hay phía máy khách.
Zach Lysobey

1
Hiệu suất, bảo mật, tổ chức mã / khả năng bảo trì, tính di động - tất cả những điều tôi xem xét đầu tiên. stackoverflow.com/questions/1516852/
Mạnh

2

Những lỗi này có thể được đưa ra nếu, khi bạn đăng ký ứng dụng của mình với Facebook, bạn không có dấu gạch chéo phía trước trong trường URL của Trang web. Nói cách khác, bạn cần " http://domain.com / " chứ không phải " http://domain.com "

Bạn có thể kiểm tra cài đặt URL Trang web từ developers.facebook.com/apps Chỉnh sửa cài đặt -> Cơ bản -> URL trang web.


Bạn có thể vui lòng làm rõ câu của bạn với tôi?
itinance
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.