ฉันเห็นความคิดเห็นนี้เกิดขึ้นมากมาย/* @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 */
ก่อนที่จะส่งออก ไม่ได้ตรวจสอบการหลบหนีเอาต์พุตและควรตรวจสอบความถูกต้อง ทดสอบเป็นสีเขียว