Tôi thấy rất nhiều sự xuất hiện của nhận xét này /* @escapeNotVerified */
trong các tệp mẫu cho Magento2.
Liệu nó có một ý nghĩa đặc biệt?
Có sử dụng cho việc này?
Ví dụ:
Tôi thấy rất nhiều sự xuất hiện của nhận xét này /* @escapeNotVerified */
trong các tệp mẫu cho Magento2.
Liệu nó có một ý nghĩa đặc biệt?
Có sử dụng cho việc này?
Ví dụ:
Câu trả lời:
Thẻ này được sử dụng bởi các bài kiểm tra tĩnh. Bất kỳ đầu ra có khả năng không an toàn nào cũng phải được đánh dấu bằng @escapeNotVerified
hoặc @noEscape
để vượt qua các bài kiểm tra, điều này có nghĩa là việc sử dụng cụ thể này đã được kiểm tra và an toàn.
Trong các bản phát hành trong tương lai, tất cả các lần xuất hiện @escapeNotVerified
sẽ được xác minh và được đánh dấu bằng @noEscape
hoặc thoát bằng một trong các phương pháp sau:
\Magento\Framework\View\Element\AbstractBlock::escapeHtml
\Magento\Framework\View\Element\AbstractBlock::escapeUrl
\Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl
\Magento\Framework\View\Element\AbstractBlock::escapeQuote
Cũng lưu ý rằng một số đầu ra được coi là an toàn và không nên được đánh dấu bằng các chú thích như vậy:
getTitleHtml
, cũng được dự kiến sẽ tạo ra HTML thoátTôi tìm thấy nó trong devdocs của Magento2
Kiểm tra tĩnh
Để cải thiện bảo mật chống lại việc tiêm XSS, một thử nghiệm tĩnh XssPhtmlTemplateTest.php
được thêm vào dev \ tests \ static \ testsuite \ Magento \ Test \ Php.
Thử nghiệm tĩnh này tìm thấy tất cả các cuộc gọi tiếng vang trong các mẫu PHTML và xác định xem nó có thoát đúng hay không.
Nó bao gồm các trường hợp sau:
/* @noEscape */
trước khi đầu ra. Đầu ra không yêu cầu thoát. Kiểm tra là màu xanh lá cây.
/* @escapeNotVerified */
trước khi đầu ra. Thoát đầu ra không được kiểm tra và cần được xác minh. Kiểm tra là màu xanh lá cây.