ข้อผิดพลาด“ JavaScript ไม่ปลอดภัยพยายามเข้าถึงเฟรมด้วย URL …” ถูกสร้างขึ้นอย่างต่อเนื่องในตัวตรวจสอบ Chrome webkit


129

Chrome (หรือเบราว์เซอร์ webkit อื่น ๆ ) พ่น "Unsafe JavaScript พยายามเข้าถึงเฟรมด้วย URL ... " จำนวนมากเหล่านี้เมื่อทำงานกับ Facebook API เป็นต้น

มันไม่รบกวนการทำงานจริง แต่มันทำให้คอนโซล javascript ไม่สามารถใช้งานได้โดยทั่วไป

ฉันต้องการทราบว่ามีวิธีระงับข้อผิดพลาดเฉพาะในคอนโซลหรือไม่ หรือหากมีวิธีแก้ปัญหาอื่น ๆ ที่พวกคุณคิดได้ฉันจะขอบคุณมาก

ขอบคุณ


1
ขณะนี้ฉันกำลังใช้วิธีแก้ปัญหาเพียงแค่ตั้งค่าแท็บคอนโซลให้แสดงบันทึกเท่านั้น ฉันกำลังมองหาวิธีแก้ปัญหาที่ช่วยให้ฉันสามารถติดตามข้อผิดพลาดได้ (ไม่ใช่วิธีนี้)
Neil Sarkar

จะเป็นการดีที่จะให้ตัวอย่างวิธีที่คุณใช้ API มีหลายสาเหตุที่อาจเกิดขึ้นได้
Kinlan

ฉันรู้ว่าคุณหมายถึงอะไร แต่ฉันค่อนข้างมั่นใจว่าสิ่งนี้เกิดขึ้นกับการรวม Facebook ใด ๆ ตัวอย่างเช่นเปิดคอนโซล webkit js ของคุณบนเว็บไซต์ของ Domino (กำลังผลิต) pizzaholdouts.com
Neil Sarkar

1
คุณไม่เพียงแค่ลองใช้สคริปต์ข้ามไซต์หรือไม่? คุณกำลังขอที่อยู่ API ของ Facebook จากเซิร์ฟเวอร์ของคุณเองหรือไม่? วิธีที่แตกต่างกันเล็กน้อย
Tomasz Durka

4
ไม่ได้ร้องขออะไรเลยฉันแค่ใส่ของสำเร็จรูปเพื่อให้นักพัฒนาที่
Neil Sarkar

คำตอบ:


19

คุณสามารถอนุญาตคำขอข้ามโดเมนระหว่างการทดสอบโดยเรียกใช้ chrome ด้วย--disable-web-securityตัวเลือกบรรทัดคำสั่ง สิ่งนี้น่าจะกำจัดข้อผิดพลาด (และอนุญาตให้ FB สอดแนมการทดสอบของคุณ)


อืมที่น่าสนใจ ... มีวิธีตั้งค่าตัวเลือกนอกเหนือจากบรรทัดคำสั่งหรือไม่? ฉันลองสิ่งนี้จากบรรทัดคำสั่ง: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securityและดูเหมือนว่าจะได้ผล! แต่มันบอกว่ามันไม่สามารถโหลดโปรไฟล์ของฉัน ... มีความคิดอย่างไรที่จะตั้งค่าสถานะนั้นจากในแอพหรือตั้งค่าเป็นค่าเริ่มต้นเป็นค่านั้น?
Neil Sarkar

4
ในการอัปเดตตอนนี้ฉันใช้โครเมี่ยมโดยเฉพาะและฉันก็ยังอยากรู้คำตอบสำหรับสิ่งนี้
Neil Sarkar

2
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
พายุทรายตั้งแต่

4

สิ่งนี้เกิดขึ้นเมื่อโหลดซอร์สจากโดเมนอื่นและพยายามเข้าถึง document.cookie มันเกิดขึ้นกับแหล่งข้อมูลส่วนหัว (แท็กสคริปต์) และเอกสาร iframe ซึ่งพยายามเข้าถึง document.cookie ด้วยเหตุผลบางประการ


4

มีปัญหาอะไร?

ตันของUnsafe JavaScript attempt to access frame with URL...ข้อผิดพลาดในคอนโซล Chrome JS

ดังที่@thechrisproject ชี้ให้เห็นข้อผิดพลาดเหล่านี้เกิดจาก API และวิดเจ็ตของบุคคลที่สามที่มีชื่อเสียงจำนวนมากซึ่งรวมถึง แต่ไม่ จำกัด เพียง:

  • Facebook JS SDK
  • Vimeo Iframe ฝัง
  • Google Maps Iframe ฝัง

ความเข้าใจของฉันเกี่ยวกับสาเหตุ : (โปรดแก้ไขฉันถ้าฉันผิด)

Chrome มีการตั้งค่าความปลอดภัยที่เข้มงวดกว่าและ / หรือแสดงข้อผิดพลาดดังกล่าวมากกว่าเบราว์เซอร์คู่แข่ง ผู้เขียน API / วิดเจ็ต / ฝังพยายามที่จะทำสิ่งต่างๆ (ข้ามโดเมน / เฟรม) ที่จะไม่ทำงานในทุกเบราว์เซอร์ (อาจใช้สำหรับการรายงาน / การวิเคราะห์ของตนเอง) แต่นั่นจะไม่ส่งผลต่อการใช้งานวิดเจ็ตของพวกเขาหากไม่ได้ผล ทำงาน (ทำให้เกิดข้อผิดพลาดที่น่ารำคาญมากมาย)

คำตอบที่รวดเร็ว

ไม่คุณไม่สามารถ ( เพียง ) ระงับข้อผิดพลาดเหล่านี้ในคอนโซล Chrome

การแก้ปัญหา?

  • จัดการกับมัน. ข้อผิดพลาดเหล่านี้ไม่ได้ทำลาย apis และวิดเจ็ตของบุคคลที่สามเหล่านี้ แต่ทำให้คอนโซลใช้งานยากขึ้นมาก
  • คุณสามารถตั้งค่าคอนโซลให้บันทึกเฉพาะข้อความเตือนบันทึกหรือดีบัก ซึ่งจะซ่อนข้อผิดพลาดทั้งหมด
  • คุณสามารถใช้เบราว์เซอร์อื่น
  • เป็น@Dagg_Nabbit. ชี้ให้เห็นคุณสามารถอนุญาตคำขอข้ามโดเมนโดยเรียกใช้ chrome ด้วย--disable-web-securityตัวเลือกบรรทัดคำสั่ง ข้อมูลเพิ่มเติมที่นี่: เดียวกันต้นทางนโยบายปิดการใช้งานใน Chrome โปรดทราบว่าการตั้งค่านี้จะส่งผลเสียต่อความปลอดภัยของเบราว์เซอร์ของคุณ ฉันมีทางลัดโครเมี่ยม 2 ทางดังนั้นฉันจึงสามารถเปิดได้โดยมีหรือไม่มีแฟล็กนี้

3

เนื่องจากเราไม่สามารถตำหนิผู้คนจาก Google ในการสร้างเบราว์เซอร์ที่ปลอดภัยเช่นนี้ฉันคิดว่าทางออกที่ดีที่สุดคือการใช้โซลูชันฝั่งเซิร์ฟเวอร์ของ Facebook (เช่น PHP SDK) ซึ่งจะช่วยให้คุณประหยัดได้มากมากมากมาก ปวดหัวมาก ข้อดีอย่างเดียวที่ฉันเห็นในการใช้ FB javascript SDK คือการเข้าสู่ระบบป๊อปอัปซึ่งคุณสามารถทำได้ด้วยตัวเองโดยใช้ javascript / jQuery


6
เหตุใดการใช้ PHP SDK (หรือ SDK ฝั่งเซิร์ฟเวอร์อื่น ๆ ) จึงช่วยลดอาการปวดหัวได้มาก
Steve Horn

@steve: ข้อเท็จจริงที่ว่า Chrome บล็อกคำขอที่ไม่ปลอดภัยนั้นตอบได้มากเกี่ยวกับวิธีการประมวลผลฝั่งไคลเอ็นต์ที่ไม่ปลอดภัย
Jhourlad Estrella

2
มลพิษ IMHO ของคอนโซล JS ไม่ควรเป็นข้อพิจารณาหลักในการตัดสินใจว่าจะใส่ลอจิกฝั่งเซิร์ฟเวอร์หรือฝั่งไคลเอ็นต์
Zach Lysobey

1
ประสิทธิภาพ, ความปลอดภัย, การจัดระเบียบรหัส / การบำรุงรักษา, การพกพา - ทุกสิ่งที่ฉันต้องพิจารณาก่อน stackoverflow.com/questions/1516852/…
Zach Lysobey

2

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นได้หากเมื่อคุณลงทะเบียนแอปของคุณกับ Facebook คุณไม่มีเครื่องหมายทับไปข้างหน้าในฟิลด์ URL ของไซต์ กล่าวอีกนัยหนึ่งคุณต้อง " http://domain.com / " ไม่ใช่ " http://domain.com "

คุณสามารถตรวจสอบการตั้งค่า URL ของไซต์ได้จากdevelopers.facebook.com/apps Edit settings -> Basic -> Site URL


คุณช่วยชี้แจงประโยคของคุณให้ฉันฟังได้ไหม
itinance
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.