Chrome DevTools ช่วยปกป้องการโจมตี XSS ด้วยตนเองได้อย่างไร

Wolfgang Beyer
Wolfgang Beyer

การโจมตี XSS คืออะไร

Self-XSS หรือการเขียนสคริปต์ข้ามเว็บไซต์ด้วยตนเองเป็นการโจมตีแบบวิศวกรรมสังคมประเภทหนึ่งที่หลอกให้คุณเรียกใช้โค้ดที่เป็นอันตรายในเว็บเบราว์เซอร์ การโจมตีแบบ XSS ด้วยตนเองต่างจากการโจมตี XSS ปกติซึ่งมีช่องโหว่ในเว็บแอปพลิเคชันที่ทำให้ผู้โจมตีแทรกโค้ดที่เป็นอันตรายได้ แต่การโจมตีแบบ XSS ด้วยตนเองจะขึ้นอยู่กับการดำเนินการรันโค้ดที่เป็นไปได้ของคุณเอง

โดยปกติ การโจมตีแบบ Self-XSS จะเกี่ยวข้องกับผู้โจมตีที่หลอกล่อให้คุณคัดลอกและวางโค้ดที่เป็นอันตรายลงในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บในเบราว์เซอร์ โดยปกติแล้วผู้โจมตีจะบรรลุเป้าหมายนี้ด้วยการสัญญาว่าจะให้รางวัลบางประเภท นี่อาจเป็น:

  • สัญญาว่ารหัสจะทำให้คุณเข้าถึงฟีเจอร์ที่ซ่อนอยู่หรือรางวัลเสมือนได้
  • การแสร้งว่าโค้ดเป็นการทดสอบความปลอดภัยหรือการแก้ไขข้อบกพร่อง
  • สัญญาว่าโค้ดนั้นอนุญาตให้แฮ็กเว็บไซต์เพื่อผลประโยชน์ของคุณ

เมื่อคุณเรียกใช้โค้ด ผู้โจมตีจะสามารถควบคุมบัญชีของคุณได้ ซึ่งอาจทำให้ผู้โจมตีดำเนินการต่อไปนี้ได้

  • ขโมยข้อมูลส่วนบุคคลของคุณ เช่น ชื่อ ที่อยู่ และหมายเลขบัตรเครดิต
  • โพสต์ข้อความที่ไม่ได้รับอนุญาตหรือความคิดเห็นในนามของคุณ
  • ควบคุมบัญชีโซเชียลมีเดียของคุณเอง
  • แพร่กระจายมัลแวร์ไปยังผู้ใช้รายอื่น

เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome พยายามลดการโจมตีแบบ XSS ได้อย่างไร

การให้ผู้ใช้วางโค้ดลงในเครื่องมือสำหรับนักพัฒนาเว็บแล้วเรียกใช้โค้ดนั้นมีความเสี่ยงอยู่แล้วโดยธรรมชาติ แต่ก็เป็นหนึ่งในฟีเจอร์หลักของ Chrome DevTools เราจึงต้องหาจุดสมดุลระหว่างการลดการโจมตีแบบ XSS ที่อาจเกิดขึ้นกับการไม่แทรกแซงการทำงานของนักพัฒนาซอฟต์แวร์ที่ต้องการเพียงแก้ไขข้อบกพร่องของเว็บไซต์

นักพัฒนาซอฟต์แวร์มักจะไม่คัดลอกโค้ดที่พบจากที่อื่นในเว็บ วางลงในเครื่องมือสำหรับนักพัฒนาเว็บ แล้วเรียกใช้โค้ดโดยไม่ได้ดูคร่าวๆ ว่าโค้ดทำอะไรบ้าง นักพัฒนาซอฟต์แวร์ส่วนใหญ่ตระหนักถึงความเสี่ยงด้านความปลอดภัยของการเรียกใช้โค้ดที่พบจากมุมเล็กๆ ของเว็บ

เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome วางใจให้นักพัฒนาซอฟต์แวร์รู้ว่ากำลังทำอะไรอยู่ เราไม่ต้องการทำให้โปรแกรมทำงานช้า หรือรบกวนผู้เข้าชมไม่ว่าด้วยวิธีใดเมื่อคัดลอกและวางโค้ด

เราคิดว่าผู้ที่ไม่ใช่นักพัฒนาซอฟต์แวร์มีความเสี่ยงที่จะตกเป็นเหยื่อการโจมตีแบบ XSS ด้วยตนเองสูงกว่ามาก เพื่อปกป้องคุณ เราเชื่อว่าการรบกวนคุณเป็นสิ่งที่ยอมรับได้และเป็นการรบกวนขณะที่คุณกำลังทำสิ่งที่เป็นอันตราย เมื่อเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ตรวจพบว่าผู้ใช้ที่ไม่มีประสบการณ์กำลังพยายามวางโค้ดลงในเครื่องมือสำหรับนักพัฒนาเว็บ เครื่องมือจะหยุดและแสดงคำเตือน

เครื่องมือสำหรับนักพัฒนาเว็บจะแสดงคำเตือน XSS ด้วยตนเองเมื่อใด

เครื่องมือสำหรับนักพัฒนาเว็บใช้การเรียนรู้ที่เรียบง่ายมากในการตัดสินใจว่าจะแสดงคำเตือน XSS ด้วยตนเองหรือไม่ โดยระบบจะอิงตามประวัติคอนโซลของโปรไฟล์ผู้ใช้ของคุณ

หากโปรไฟล์ของคุณมีอย่างน้อย 5 รายการในประวัติคอนโซล เครื่องมือสำหรับนักพัฒนาเว็บจะไม่รบกวนคุณเมื่อมีคำเตือนหรือป๊อปอัป ประวัติคอนโซลคือรายการคำสั่งที่คุณพิมพ์และดำเนินการในคอนโซล นี่คือคำสั่งที่คุณจะเห็นเมื่อวางเคอร์เซอร์ในคอนโซลและกดปุ่มลูกศรขึ้นซ้ำๆ

คำเตือน XSS ของตนเองเป็นอย่างไร

เมื่อผู้ใช้ที่ไม่มีประสบการณ์พยายามวางโค้ดลงในคอนโซล ระบบจะบล็อกการดำเนินการนี้และคอนโซลจะแสดงคำเตือนแทน

คำเตือน XSS ด้วยตนเองในคอนโซล

คุณสามารถลบล้างคำเตือนนี้และเปิดใช้การวางได้ แต่คุณต้องพิมพ์ "อนุญาตให้วาง" เพื่อทำเช่นนั้น

เมื่อผู้ใช้ที่ไม่มีประสบการณ์วางโค้ดลงในตัวแก้ไขโค้ดของเครื่องมือสำหรับนักพัฒนาเว็บ (เช่น แผงแหล่งที่มา) ประสบการณ์ของผู้ใช้จะคล้ายกันมาก คุณจะเห็นกล่องโต้ตอบโมดัลแทนคำเตือน

กล่องโต้ตอบโมดัล XSS ด้วยตนเองในแผงแหล่งที่มา

และเช่นเคย การปิดกล่องโต้ตอบนี้เพียงอย่างเดียวไม่เพียงพอที่จะทำให้สามารถวางได้ หากต้องการลบล้างคำเตือน คุณต้องพิมพ์ "อนุญาตให้วาง" ลงในช่องป้อนข้อมูล

นี่เป็นการตั้งค่าแบบครั้งเดียวใช่ไหม

ใช่ เมื่อตัดสินใจอนุญาตให้วางแล้ว คุณจะไม่ได้รับคำเตือน XSS ด้วยตนเองอีก

เราหวังว่าการดำเนินการนี้จะช่วยชดเชยความมีประโยชน์และความน่ารำคาญได้ การเพิ่มอุปสรรคช่วยเพิ่มโอกาสที่คุณจะได้อ่านคำเตือน ซึ่งช่วยลดโอกาสที่จะเกิดการโจมตีแบบ XSS ด้วยตนเองได้สำเร็จ

เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome จะเก็บค่าสถานะไว้ซึ่งระบุว่าจะให้แสดงคำเตือน XSS ด้วยตนเองแก่คุณในโปรไฟล์ Chrome หรือไม่ ดังนั้น หากคุณสร้างโปรไฟล์ใหม่และเริ่มวางโค้ดลงในเครื่องมือสำหรับนักพัฒนาเว็บโดยทันที การวางจะถูกบล็อกและคำเตือน XSS ในตัวแทน

คุณปิดใช้การทดสอบอัตโนมัติได้ไหม

แล้วการทดสอบอัตโนมัติล่ะ เครื่องมือทดสอบจำนวนมากสร้างโปรไฟล์ชั่วคราวขึ้นมาใหม่สำหรับการทดสอบทุกครั้ง ดังนั้น หากคุณใช้เครื่องมือสำหรับนักพัฒนาเว็บเพื่อแก้ไขข้อบกพร่องของการทดสอบอัตโนมัติ การวางลงในคอนโซลจะถูกบล็อกในตอนแรก

เพื่อหลีกเลี่ยงปัญหานี้ ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้

  • ใช้ Chrome สำหรับการทดสอบ ซึ่งเป็น Chrome มากมายที่ออกแบบมาเพื่อการทดสอบและการทำงานอัตโนมัติโดยเฉพาะ คำเตือน XSS ของตนเองปิดอยู่

  • สำหรับเวอร์ชันการเผยแพร่ของ Chrome อื่นๆ ให้ส่งค่าสถานะบรรทัดคำสั่ง --unsafely-disable-devtools-self-xss-warnings ไปยัง Chrome เพื่อปิดใช้กล่องโต้ตอบคำเตือน Xss ทั้งหมด

บทสรุป

คุณคิดว่ากลยุทธ์นี้เป็นอย่างไรสำหรับการลดการโจมตีแบบ XSS ด้วยตัวเอง หากมีความคิดเห็นหรือคำแนะนำ โปรดเพิ่มความคิดเห็นในข้อบกพร่องนี้ หรือติดต่อโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

โดยเฉพาะอย่างยิ่ง หากคุณกำลังทำงานกับเว็บไซต์ที่มีการเตือนเกี่ยวกับการโจมตีแบบ XSS ด้วยตนเองผ่านบันทึกของคอนโซล เราอยากจะพูดคุยเกี่ยวกับความพยายามของเราในการทำงานร่วมกันหรือการวัดผลกระทบของมาตรการลด XSS ด้วยตนเอง

ดาวน์โหลดเวอร์ชันตัวอย่าง

ลองใช้ Chrome Canary, Dev หรือ เบต้า เป็นเบราว์เซอร์เริ่มต้นสำหรับการพัฒนา ช่องทางพรีวิวเหล่านี้จะทำให้คุณเข้าถึงฟีเจอร์ล่าสุดของเครื่องมือสำหรับนักพัฒนาเว็บ ทดสอบ API แพลตฟอร์มเว็บที่ล้ำสมัย และพบปัญหาในเว็บไซต์ก่อนผู้ใช้

ติดต่อทีม Chrome DevTools

ใช้ตัวเลือกต่อไปนี้เพื่อพูดคุยเกี่ยวกับฟีเจอร์ใหม่และการเปลี่ยนแปลงในโพสต์ หรืออื่นๆ ที่เกี่ยวข้องกับเครื่องมือสำหรับนักพัฒนาเว็บ

  • ส่งข้อเสนอแนะหรือความคิดเห็นถึงเราทาง crbug.com
  • รายงานปัญหาเกี่ยวกับเครื่องมือสำหรับนักพัฒนาเว็บโดยใช้ตัวเลือกเพิ่มเติม   เพิ่มเติม   > ความช่วยเหลือ > รายงานปัญหาเกี่ยวกับเครื่องมือสำหรับนักพัฒนาเว็บในเครื่องมือสำหรับนักพัฒนาเว็บ
  • ทวีตที่ @ChromeDevTools
  • แสดงความคิดเห็นว่ามีอะไรใหม่ในวิดีโอ YouTube เครื่องมือสำหรับนักพัฒนาเว็บ หรือวิดีโอ YouTube สำหรับเครื่องมือสำหรับนักพัฒนาเว็บ