Magento 2 @escapeNot ยืนยันแล้ว


65

ฉันเห็นความคิดเห็นนี้เกิดขึ้นมากมาย/* @escapeNotVerified */ในไฟล์เทมเพลตสำหรับ Magento2
มันมีความหมายพิเศษหรือไม่?
มีประโยชน์สำหรับสิ่งนี้หรือไม่?

ตัวอย่าง:


25
เฮ้ ... ทำไมต้องโหวต ฉันไม่ได้รับอนุญาตให้ถามคำถาม?
Marius

คำตอบ:


95

แท็กนี้ใช้โดยการทดสอบแบบคงที่ ผลลัพธ์ที่อาจไม่ปลอดภัยใด ๆ จะต้องทำเครื่องหมายด้วย@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

โปรดทราบว่าเอาต์พุตบางอย่างถือว่าปลอดภัยและไม่ควรทำเครื่องหมายด้วยคำอธิบายประกอบดังกล่าว:

  • อยู่ในเครื่องหมายคำพูดเดี่ยว
  • อยู่ในเครื่องหมายคำพูดคู่ แต่ไม่มีตัวแปร
  • ประเภทการหล่อเพื่อบูล int
  • การเรียกเมธอดที่มี 'html' ในชื่อเช่นgetTitleHtmlนั้นคาดว่าจะมีการส่งออก HTML ที่หลบหนี

3
สักคำตอบ @Alex
Amit Bera

Good Ans +1 @Alex :)
Rama Chandran M

มันช่วย +1 @Alex
Nikunj Vadariya

4
ที่ความเร็วปัจจุบันการเปลี่ยนจะทำประมาณ 2026: D
เฟเบียน Schmengler

26

ฉันพบมันใน devdocs ของ Magento2

การทดสอบแบบคงที่

เพื่อปรับปรุงความปลอดภัยจากการฉีด XSS การทดสอบแบบคงที่XssPhtmlTemplateTest.phpจะถูกเพิ่มไปยัง dev \ tests \ static \ testsuite \ Magento \ Test \ Php

การทดสอบแบบคงที่นี้จะค้นหาเสียงสะท้อนทั้งหมดในเทมเพลต PHTML และกำหนดว่าจะหลบหนีได้อย่างเหมาะสมหรือไม่

ครอบคลุมกรณีดังต่อไปนี้:

  • /* @noEscape */ก่อนที่จะส่งออก เอาท์พุทไม่จำเป็นต้องหลบหนี ทดสอบเป็นสีเขียว

  • /* @escapeNotVerified */ก่อนที่จะส่งออก ไม่ได้ตรวจสอบการหลบหนีเอาต์พุตและควรตรวจสอบความถูกต้อง ทดสอบเป็นสีเขียว

อ่าน Magento Docsที่ 2.0 หรือ 2.1

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.