마 젠토 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.