การโจมตี XSS คืออะไร
Self-XSS หรือการเขียนสคริปต์ข้ามเว็บไซต์ด้วยตนเองเป็นการโจมตีแบบวิศวกรรมสังคมประเภทหนึ่งที่หลอกให้คุณเรียกใช้โค้ดที่เป็นอันตรายในเว็บเบราว์เซอร์ การโจมตีแบบ XSS ด้วยตนเองต่างจากการโจมตี XSS ปกติซึ่งมีช่องโหว่ในเว็บแอปพลิเคชันที่ทำให้ผู้โจมตีแทรกโค้ดที่เป็นอันตรายได้ แต่การโจมตีแบบ XSS ด้วยตนเองจะขึ้นอยู่กับการดำเนินการรันโค้ดที่เป็นไปได้ของคุณเอง
โดยปกติ การโจมตีแบบ Self-XSS จะเกี่ยวข้องกับผู้โจมตีที่หลอกล่อให้คุณคัดลอกและวางโค้ดที่เป็นอันตรายลงในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บในเบราว์เซอร์ โดยปกติแล้วผู้โจมตีจะบรรลุเป้าหมายนี้ด้วยการสัญญาว่าจะให้รางวัลบางประเภท นี่อาจเป็น:
- สัญญาว่ารหัสจะทำให้คุณเข้าถึงฟีเจอร์ที่ซ่อนอยู่หรือรางวัลเสมือนได้
- การแสร้งว่าโค้ดเป็นการทดสอบความปลอดภัยหรือการแก้ไขข้อบกพร่อง
- สัญญาว่าโค้ดนั้นอนุญาตให้แฮ็กเว็บไซต์เพื่อผลประโยชน์ของคุณ
เมื่อคุณเรียกใช้โค้ด ผู้โจมตีจะสามารถควบคุมบัญชีของคุณได้ ซึ่งอาจทำให้ผู้โจมตีดำเนินการต่อไปนี้ได้
- ขโมยข้อมูลส่วนบุคคลของคุณ เช่น ชื่อ ที่อยู่ และหมายเลขบัตรเครดิต
- โพสต์ข้อความที่ไม่ได้รับอนุญาตหรือความคิดเห็นในนามของคุณ
- ควบคุมบัญชีโซเชียลมีเดียของคุณเอง
- แพร่กระจายมัลแวร์ไปยังผู้ใช้รายอื่น
เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome พยายามลดการโจมตีแบบ XSS ได้อย่างไร
การให้ผู้ใช้วางโค้ดลงในเครื่องมือสำหรับนักพัฒนาเว็บแล้วเรียกใช้โค้ดนั้นมีความเสี่ยงอยู่แล้วโดยธรรมชาติ แต่ก็เป็นหนึ่งในฟีเจอร์หลักของ Chrome DevTools เราจึงต้องหาจุดสมดุลระหว่างการลดการโจมตีแบบ XSS ที่อาจเกิดขึ้นกับการไม่แทรกแซงการทำงานของนักพัฒนาซอฟต์แวร์ที่ต้องการเพียงแก้ไขข้อบกพร่องของเว็บไซต์
นักพัฒนาซอฟต์แวร์มักจะไม่คัดลอกโค้ดที่พบจากที่อื่นในเว็บ วางลงในเครื่องมือสำหรับนักพัฒนาเว็บ แล้วเรียกใช้โค้ดโดยไม่ได้ดูคร่าวๆ ว่าโค้ดทำอะไรบ้าง นักพัฒนาซอฟต์แวร์ส่วนใหญ่ตระหนักถึงความเสี่ยงด้านความปลอดภัยของการเรียกใช้โค้ดที่พบจากมุมเล็กๆ ของเว็บ
เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome วางใจให้นักพัฒนาซอฟต์แวร์รู้ว่ากำลังทำอะไรอยู่ เราไม่ต้องการทำให้โปรแกรมทำงานช้า หรือรบกวนผู้เข้าชมไม่ว่าด้วยวิธีใดเมื่อคัดลอกและวางโค้ด
เราคิดว่าผู้ที่ไม่ใช่นักพัฒนาซอฟต์แวร์มีความเสี่ยงที่จะตกเป็นเหยื่อการโจมตีแบบ XSS ด้วยตนเองสูงกว่ามาก เพื่อปกป้องคุณ เราเชื่อว่าการรบกวนคุณเป็นสิ่งที่ยอมรับได้และเป็นการรบกวนขณะที่คุณกำลังทำสิ่งที่เป็นอันตราย เมื่อเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ตรวจพบว่าผู้ใช้ที่ไม่มีประสบการณ์กำลังพยายามวางโค้ดลงในเครื่องมือสำหรับนักพัฒนาเว็บ เครื่องมือจะหยุดและแสดงคำเตือน
เครื่องมือสำหรับนักพัฒนาเว็บจะแสดงคำเตือน XSS ด้วยตนเองเมื่อใด
เครื่องมือสำหรับนักพัฒนาเว็บใช้การเรียนรู้ที่เรียบง่ายมากในการตัดสินใจว่าจะแสดงคำเตือน XSS ด้วยตนเองหรือไม่ โดยระบบจะอิงตามประวัติคอนโซลของโปรไฟล์ผู้ใช้ของคุณ
หากโปรไฟล์ของคุณมีอย่างน้อย 5 รายการในประวัติคอนโซล เครื่องมือสำหรับนักพัฒนาเว็บจะไม่รบกวนคุณเมื่อมีคำเตือนหรือป๊อปอัป ประวัติคอนโซลคือรายการคำสั่งที่คุณพิมพ์และดำเนินการในคอนโซล นี่คือคำสั่งที่คุณจะเห็นเมื่อวางเคอร์เซอร์ในคอนโซลและกดปุ่มลูกศรขึ้นซ้ำๆ
คำเตือน 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 สำหรับเครื่องมือสำหรับนักพัฒนาเว็บ