เครื่องมือสำหรับนักพัฒนา · HTML ตัวหนีเอนทิตี
HTML หลบหนีเป็นแนวแรกของการป้องกัน XSS: จะเกิดอะไรขึ้นหากไม่มีมัน
· เหตุใดจึงสำคัญ
html ความปลอดภัย xss
การเขียนสคริปต์ข้ามไซต์ส่วนใหญ่เกิดขึ้นที่การหลีกเลี่ยงเพียงอย่างเดียว โพสต์นี้ติดตามชื่อผู้ใช้ที่มีแท็กสคริปต์จากฐานข้อมูลหนึ่งไปยังอีกหน้าหนึ่ง แสดงให้เห็นอย่างชัดเจนว่าการ Escape หยุดที่ใด และตำแหน่งที่เฟรมเวิร์ก 'ปลอดภัย' สลับยกเลิกการป้องกัน
เส้นทาง XSS ที่เก็บไว้เกิดจากขอบเขตเอาต์พุต HTML ที่ไม่ปลอดภัย
เส้นทาง XSS ที่เก็บไว้เกิดจากขอบเขตเอาต์พุต HTML ที่ไม่ปลอดภัย ข้อความที่เก็บไว้จะกลายเป็นมาร์กอัปที่สามารถเรียกใช้งานได้เมื่อเทมเพลตข้ามการ Escape และป้อนชื่อผู้ใช้หรือความคิดเห็นลงใน HTML โดยตรง ช่องโหว่อยู่ที่ขอบเขตเอาต์พุต ไม่ใช่ในแถวฐานข้อมูล
ในการตรวจสอบการป้องกัน html ที่หลบหนี xss ให้สร้างเส้นทาง xss ที่จัดเก็บไว้สำหรับนักพัฒนารุ่นน้องแบบเต็มสแตกที่แสดงชื่อผู้ใช้และความคิดเห็น เก็บรักษาที่เกิดจากขอบเขตที่ไม่ปลอดภัยในขณะที่เก็บไว้-XSS ขอบเขตสร้างขอบเขตเอาต์พุต html; ระบุตำแหน่งที่จัดเก็บ-XSS หลักฐานขอบเขตถูกใช้ไป การสังเกตเกี่ยวกับหลักฐานขอบเขตที่เก็บไว้-XSS เป็นของข้อความ HTML เท่านั้น
วิธีที่เบราว์เซอร์อ่านข้อความที่ไม่ใช้ Escape — โปรแกรมแยกวิเคราะห์ไม่สามารถบอกข้อมูลของคุณจากมาร์กอัปของคุณได้
วิธีที่เบราว์เซอร์อ่านข้อความที่ไม่ใช้ Escape — โปรแกรมแยกวิเคราะห์ไม่สามารถบอกข้อมูลของคุณจากมาร์กอัปของคุณได้ ตัวแยกวิเคราะห์ HTML ไม่สามารถอนุมานได้ว่าอักขระใดมาจากผู้ดูแลระบบและอักขระใดมาจากผู้เยี่ยมชม เครื่องหมายน้อยกว่าจะเริ่มต้นการเปลี่ยนโทเค็นไนเซอร์เดียวกันโดยไม่คำนึงถึงต้นกำเนิด
นักพัฒนารุ่นน้องแบบเต็มสแตกที่แสดงชื่อผู้ใช้และความคิดเห็นสามารถทดสอบว่าเบราว์เซอร์อ่านอย่างไรโดยการบันทึกข้อความที่ไม่ได้ใช้ Escape ที่ Parser ก่อนขอบเขตที่เก็บไว้-XSS การเปรียบเทียบไม่สามารถบอกข้อมูลของคุณในภายหลังได้ และค้นหาตัวแยกวิเคราะห์ที่รับผิดชอบจากมาร์กอัปของคุณ ผลลัพธ์การป้องกัน html ที่หลบหนี xss นี้อธิบายหลักฐานขอบเขตที่เก็บไว้-XSS ไม่ใช่บริบทที่สามารถเรียกใช้งานได้
สิ่งที่หลีกเลี่ยงการเปลี่ยนแปลง - < กลายเป็น <, parser เห็นข้อความ และ payload จะแสดงแทนที่จะเรียกใช้
สิ่งที่หลีกเลี่ยงการเปลี่ยนแปลง - < กลายเป็น <, parser เห็นข้อความ และเพย์โหลดจะแสดงแทนที่จะรัน การแทนที่ < ด้วย < จะคง parser ไว้ในข้อความ ToolAcre ยังจัดการเครื่องหมายและ มากกว่าและเครื่องหมายคำพูดทั้งสอง ดังนั้นค่าที่แปลงแล้วสามารถตรวจสอบกับเอาต์พุต HTML ที่คาดหวังของเทมเพลตได้
แยกการเปลี่ยนแปลงที่เป็นการ Escape ออกจากตัวอย่างขอบเขตสั้นๆ ที่เก็บไว้-XSS แสดงว่า parser เห็นว่าเป็นแหล่งตามตัวอักษร ติดตามข้อความและเพย์โหลดไปยังปลายทาง และตั้งชื่อการอ่าน API แทนที่จะแสดง สำหรับการป้องกัน html ที่หลบหนี xss การรันยังคงเป็นหลักฐานที่ต้องมีตัวแยกวิเคราะห์
ตัวอย่างการทำงาน: เพย์โหลดเป็น Escape และ Un Escape - แหล่งที่มาของเพจสองหน้าและผลลัพธ์ทั้งสอง
ตัวอย่างการทำงาน: เพย์โหลดเป็น Escape และ Un Escape - แหล่งที่มาของเพจสองหน้าและผลลัพธ์ทั้งสอง สำหรับ <script>alert("xss")</script> โหมดขั้นต่ำจะส่งคืน <script>alert("xss")</script> การแสดงผลที่เป็นข้อความ HTML จะแสดงอักขระที่มีรูปร่างเป็นแท็กแทนที่จะสร้างโหนดสคริปต์
Treat ทำงานตัวอย่าง payload เป็นการทดสอบขอบเขต นักพัฒนารุ่นน้องแบบเต็มสแตกที่แสดงชื่อผู้ใช้และความคิดเห็นควรคง Escape ไว้และไม่ใช้ Escape ดำเนินการขอบเขตที่เก็บไว้-XSS หนึ่งครั้ง และตรวจสอบแหล่งที่มาของเพจสองหน้าและอักขระทีละอักขระ ก่อนที่จะเปลี่ยนผลลัพธ์ทั้งสอง การอ้างสิทธิ์เกี่ยวกับหลักฐานขอบเขตที่เก็บไว้-XSS หยุดที่เลเยอร์ HTML นี้
กรอบงานการหลบหนีอัตโนมัติและช่องหลบหนี - ตัวกรอง 'ปลอดภัย' ตัวช่วยเอาต์พุตดิบและอุปกรณ์ประกอบฉากสไตล์ HTML ภายในที่อธิบายไว้โดยทั่วไป
กรอบงานการหลบหนีอัตโนมัติและช่องหลบหนี - ตัวกรอง 'ปลอดภัย' ตัวช่วยเอาท์พุตดิบ และอุปกรณ์ประกอบฉากสไตล์ HTML ภายใน ที่อธิบายไว้โดยทั่วไป การ Escape อัตโนมัติของเฟรมเวิร์กนั้นมีประโยชน์จนกว่าตัวช่วยเอาต์พุตดิบ ตัวกรองที่ปลอดภัย หรือรูปแบบ HTML ภายใน API จะปิดใช้งาน ช่องหลบหนีดังกล่าวจะโอนความรับผิดชอบไปยังผู้โทรและสมควรได้รับการตรวจสอบอย่างเข้มงวด
สร้างการ Escape ของเฟรมเวิร์กโดยอัตโนมัติและป้อนข้อมูลที่ไม่เป็นอันตรายแทนวัสดุของลูกค้า บันทึกช่องหลบหนีอย่างปลอดภัย สังเกตตัวกรองตัวช่วยเอาท์พุตดิบ และนับทุกการผ่านขอบเขต-XSS ที่ตั้งใจเก็บไว้ เส้นทางการป้องกัน html ที่หลบหนี xss นั้นช่วยให้นักพัฒนารุ่นเยาว์ที่เรนเดอร์ชื่อผู้ใช้และความคิดเห็นประเมินและประเมินอุปกรณ์สไตล์ Innerhtml และอธิบายโดยทั่วไปโดยไม่ต้องเดา
การ Escape เป็นสิ่งที่จำเป็น แต่ยังไม่เพียงพอ - คุณลักษณะ URL และบริบทของสคริปต์จำเป็นต้องมีกฎของตัวเอง
การ Escape เป็นสิ่งจำเป็น แต่ยังไม่เพียงพอ - คุณลักษณะ URL และบริบทของสคริปต์จำเป็นต้องมีกฎของตัวเอง การหลีกเลี่ยงข้อความ HTML จำเป็นสำหรับบริบทของพาร์เซอร์นั้นเท่านั้น URL ต้องการนโยบายโครงร่างและการเข้ารหัสส่วนประกอบ JavaScript และ CSS ต้องการซีเรียลไลเซอร์ของตัวเอง SQL ต้องการคำค้นหาที่มีพารามิเตอร์
ไม่จำเป็นต้องมีการ Escape สถานที่ URL แอตทริบิวต์ที่เพียงพอ และบริบทของสคริปต์จำเป็นต้องมีเคียงข้างกันในระหว่างการตรวจสอบขอบเขตที่เก็บไว้-XSS นักพัฒนารุ่นน้องฟูลสแตกที่แสดงชื่อผู้ใช้และความคิดเห็นสามารถตัดสินใจได้ว่ากฎของตัวเองจะเปลี่ยนแปลงที่การแปลงหรือดาวน์สตรีม เก็บข้อสรุปการป้องกัน html Escape xss เกี่ยวกับหลักฐานขอบเขตที่เก็บไว้-XSS จากการอ้างสิทธิ์ด้านความปลอดภัยทั่วไป
สิ่งนี้ไม่ครอบคลุม — การออกแบบนโยบายความปลอดภัยของเนื้อหา DOM-based XSS และไลบรารี sanitiser
สิ่งนี้ไม่ครอบคลุม — การออกแบบนโยบายความปลอดภัยของเนื้อหา DOM-based XSS และไลบรารี sanitiser การสนทนานี้ไม่ได้อ้างความครอบคลุมของการออกแบบ DOM ตาม XSS, CSP หรือการเลือกน้ำยาฆ่าเชื้อ การเข้ารหัสข้อความและการฆ่าเชื้อมาร์กอัปที่ผู้ใช้เขียนเป็นการควบคุมที่แตกต่างกันโดยมีเอาต์พุตต่างกัน
กำหนดสิ่งที่ไม่ได้ทำก่อนที่จะรันขอบเขตของ stores-XSS บันทึกนโยบายความปลอดภัยของเนื้อหาที่ครอบคลุมเป็นตัวควบคุม ตรวจสอบจุดโค้ดเบื้องหลัง xss ที่ใช้ dom ของการออกแบบ และแมปและไลบรารี sanitiser ไปยังล่ามคนถัดไป สิ่งนี้ทำให้หลักฐานขอบเขตที่เก็บไว้-XSS สามารถตรวจสอบได้สำหรับนักพัฒนาฟูลสแต็กรุ่นน้องที่แสดงชื่อผู้ใช้และความคิดเห็นเพื่อตรวจสอบ html ที่หลบหนีการป้องกัน xss
ประเด็นสำคัญ: Escape ทุกสตริงที่ไม่น่าเชื่อถือที่เอาต์พุต - วิธีที่ Escape เอนทิตี HTML แสดงให้คุณเห็นอย่างชัดเจนว่าแบบฟอร์มที่ Escape มีลักษณะอย่างไร เพื่อให้คุณสามารถตรวจสอบได้ว่าเทมเพลตของคุณควรสร้างอะไร
ประเด็นสำคัญ: Escape ทุกสตริงที่ไม่น่าเชื่อถือที่เอาต์พุต - วิธีที่ Escape เอนทิตี HTML แสดงให้คุณเห็นอย่างชัดเจนว่าแบบฟอร์มที่ Escape มีลักษณะอย่างไร เพื่อให้คุณสามารถตรวจสอบได้ว่าเทมเพลตของคุณควรสร้างอะไร ใช้ยูทิลิตีนี้เป็นข้อมูลอ้างอิงที่โปร่งใสสำหรับลักษณะการหลีก HTML อักขระห้าอักขระ มันแสดงให้เห็นถึงขั้นตอนการเข้ารหัสเอาต์พุต ไม่ใช่การตัดสินใจป้องกันหรือเชื่อถือ XSS ที่สมบูรณ์
เชื่อมต่อ Takeaway Escape ทุกรายการที่ไม่น่าเชื่อถือกับเอาต์พุตขอบเขต-XSS ที่เก็บไว้ที่สังเกตได้ เก็บสตริงไว้ที่เอาต์พุตว่าอยู่ข้างผลลัพธ์แบบครั้งเดียว จากนั้นตรวจสอบว่าที่ใดที่ตัวหนีเอนทิตี html เข้ามาจะแสดงให้คุณเห็นอย่างชัดเจนว่าอะไร นักพัฒนารุ่นน้องฟูลสแต็คที่แสดงชื่อผู้ใช้และความคิดเห็นสามารถตรวจสอบแบบฟอร์มที่หลบหนีได้ ซึ่งดูเหมือนเป็นการค้นหาการป้องกัน xss ที่หลบเลี่ยง html แบบแคบ การตัดสินใจเชิงปฏิบัติเบื้องหลังบทความนี้มีความเฉพาะเจาะจง: การเขียนสคริปต์ข้ามไซต์ส่วนใหญ่เกิดจากการหลีกเลี่ยงเพียงหนึ่งเดียว โพสต์นี้ติดตามชื่อผู้ใช้ที่มีแท็กสคริปต์จากฐานข้อมูลหนึ่งไปยังอีกหน้าหนึ่ง แสดงให้เห็นอย่างชัดเจนว่าการ Escape หยุดที่ใด และตำแหน่งที่เฟรมเวิร์ก 'ปลอดภัย' สลับยกเลิกการป้องกัน การทำงานของผู้อ่านเป็นรูปธรรมเท่าเทียมกัน: ลิงก์ไปยังตัวหนีเอนทิตี HTML และสาธิตการหลีกเลี่ยงเพย์โหลดแท็กสคริปต์ เพื่อให้ผู้อ่านสามารถเปรียบเทียบกับเอาต์พุตของเทมเพลตได้