ฉันสงสัยว่าเป็นไปได้ที่แซนด์บ็อกซ์ JavaScript จะทำงานในเบราว์เซอร์เพื่อป้องกันการเข้าถึงฟีเจอร์ที่ปกติแล้วพร้อมใช้งานกับโค้ด JavaScript ที่ทำงานในหน้า HTML
ตัวอย่างเช่นสมมติว่าฉันต้องการให้ JavaScript API สำหรับผู้ใช้ปลายทางเพื่อให้พวกเขากำหนดตัวจัดการเหตุการณ์ให้ทำงานเมื่อ "เหตุการณ์ที่น่าสนใจ" เกิดขึ้น แต่ฉันไม่ต้องการให้ผู้ใช้เหล่านั้นเข้าถึงคุณสมบัติและฟังก์ชั่นของwindow
วัตถุ ฉันสามารถทำสิ่งนี้ได้หรือไม่?
alert
ในกรณีที่ง่ายที่สุดสมมติว่าผมต้องการที่จะป้องกันไม่ให้ผู้ใช้โทร สองวิธีที่ฉันคิดได้คือ:
- กำหนดใหม่
window.alert
ทั่วโลก ฉันไม่คิดว่าเรื่องนี้จะเป็นวิธีการที่ถูกต้องเพราะรหัสอื่น ๆ ที่ทำงานในหน้า (สิ่งเช่นไม่ประพันธ์โดยผู้ใช้ในจัดการเหตุการณ์ของพวกเขา)alert
อาจต้องการที่จะใช้ - ส่งรหัสตัวจัดการเหตุการณ์ไปยังเซิร์ฟเวอร์เพื่อประมวลผล ฉันไม่แน่ใจว่าการส่งรหัสไปยังเซิร์ฟเวอร์เพื่อประมวลผลเป็นวิธีการที่ถูกต้องเนื่องจากตัวจัดการเหตุการณ์จำเป็นต้องทำงานในบริบทของหน้าเว็บ
อาจเป็นทางออกที่เซิร์ฟเวอร์ประมวลผลฟังก์ชั่นที่ผู้ใช้กำหนดและสร้างการติดต่อกลับที่จะดำเนินการกับลูกค้าหรือไม่ แม้ว่าวิธีการนี้จะได้ผลดีกว่าในการแก้ปัญหานี้หรือไม่?
while (1) {}
--- มันแค่แฮงค์a=[]; while (1) { a=[a,a]; }
ในทำนองเดียวกัน