ฉันเห็นความคิดเห็นนี้เกิดขึ้นมากมาย/* @escapeNotVerified */ในไฟล์เทมเพลตสำหรับ Magento2
มันมีความหมายพิเศษหรือไม่?
มีประโยชน์สำหรับสิ่งนี้หรือไม่?
ตัวอย่าง:
ฉันเห็นความคิดเห็นนี้เกิดขึ้นมากมาย/* @escapeNotVerified */ในไฟล์เทมเพลตสำหรับ Magento2
มันมีความหมายพิเศษหรือไม่?
มีประโยชน์สำหรับสิ่งนี้หรือไม่?
ตัวอย่าง:
คำตอบ:
แท็กนี้ใช้โดยการทดสอบแบบคงที่ ผลลัพธ์ที่อาจไม่ปลอดภัยใด ๆ จะต้องทำเครื่องหมายด้วย@escapeNotVerifiedหรือ@noEscapeผ่านการทดสอบหมายความว่าการใช้งานเฉพาะอย่างนี้ได้รับการตรวจสอบแล้วและปลอดภัย
ในอนาคตการเผยแพร่สิ่งที่เกิดขึ้นทั้งหมด@escapeNotVerifiedจะได้รับการตรวจสอบและทำเครื่องหมายด้วย@noEscapeหรือหนีด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
\Magento\Framework\View\Element\AbstractBlock::escapeHtml\Magento\Framework\View\Element\AbstractBlock::escapeUrl\Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl\Magento\Framework\View\Element\AbstractBlock::escapeQuoteโปรดทราบว่าเอาต์พุตบางอย่างถือว่าปลอดภัยและไม่ควรทำเครื่องหมายด้วยคำอธิบายประกอบดังกล่าว:
getTitleHtmlนั้นคาดว่าจะมีการส่งออก HTML ที่หลบหนีฉันพบมันใน devdocs ของ Magento2
การทดสอบแบบคงที่
เพื่อปรับปรุงความปลอดภัยจากการฉีด XSS การทดสอบแบบคงที่XssPhtmlTemplateTest.phpจะถูกเพิ่มไปยัง dev \ tests \ static \ testsuite \ Magento \ Test \ Php
การทดสอบแบบคงที่นี้จะค้นหาเสียงสะท้อนทั้งหมดในเทมเพลต PHTML และกำหนดว่าจะหลบหนีได้อย่างเหมาะสมหรือไม่
ครอบคลุมกรณีดังต่อไปนี้:
/* @noEscape */ก่อนที่จะส่งออก เอาท์พุทไม่จำเป็นต้องหลบหนี ทดสอบเป็นสีเขียว
/* @escapeNotVerified */ก่อนที่จะส่งออก ไม่ได้ตรวจสอบการหลบหนีเอาต์พุตและควรตรวจสอบความถูกต้อง ทดสอบเป็นสีเขียว