마 젠토 2 @escapeNot 인증 됨


65

/* @escapeNotVerified */Magento2의 템플릿 파일 에서이 주석이 많이 나타납니다.
특별한 의미가 있습니까?
이것에 대한 사용이 있습니까?

예 :


25
이봐 ... 왜 downvote? 질문을 할 수 없습니까?
— 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

또한 일부 출력은 안전하다고 간주되며 이러한 주석으로 표시되어서는 안됩니다.

  • 작은 따옴표로 묶음
  • 큰 따옴표로 묶지 만 변수는 없습니다.
  • bool, int로 타입 캐스팅
  • 이름에 'html'이 포함 된 메소드 호출 getTitleHtml도 이스케이프 된 HTML을 출력해야합니다.

3
Greats answer @Alex
— Amit Bera

Good Ans +1 @Alex :)
— Rama Chandran M

도움이 +1
— @Alex

4
현재 속도로 교체는 약 2026 년에 수행됩니다. D
— Fabian Schmengler

26

Magento2의 devdocs에서 찾았습니다.

정적 테스트

XSS 주입에 대한 보안을 향상시키기 위해 정적 테스트 XssPhtmlTemplateTest.php가 dev \ tests \ static \ testsuite \ Magento \ Test \ Php에 추가됩니다.

이 정적 테스트는 PHTML 템플릿에서 모든 에코 호출을 찾아서 제대로 이스케이프되는지 확인합니다.

다음과 같은 경우에 적용됩니다.

  • /* @noEscape */출력하기 전에. 출력에는 이스케이프가 필요하지 않습니다. 테스트는 녹색입니다.

  • /* @escapeNotVerified */출력하기 전에. 출력 이스케이프는 확인되지 않으므로 확인해야합니다. 테스트는 녹색입니다.

2.0 또는 2.1 에서 Magento Docs 를 읽으십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.