さまざまなエスケープ方法の使用


8

vendor/magento/framework/Escaper.php(主に)テンプレート内で使用されるいくつかの便利なセキュリティメソッドを含むクラスに気づきました。それらのいくつかは非常に一般的ですが(escapeHtml())、それらのいくつかは遭遇するのが難しいです。

  1. どのような方法でescapeXssInUrl()実際に行うのですか?
  2. メソッドの場合escapeJsQuote()-これらの引用が見つかる場所はどこですか?jsテンプレート内のみインライン?
  3. すべての方法を使用する必要があるときに、誰かが明確な説明をしていますか(実際の例)?
  4. 違いは何であるescapeUrl()escapeXssInUrl()優れたセキュリティ及び第二の1つの助成金私たちの場合は、なぜ常にだけではなく、HTML文字をエスケープ秒1を使わないのでしょうか?
  5. escapeQuote()たとえば、このような状況で変数をエコーするために使用する必要が<div value="<?php echoあります[ここ?] $value?>"></div>

回答:


3

XSS攻撃に対するセキュリティ対策のほとんどの機能。

escapeXssInUrl()この方法は、削除javascript:vbscript:data:URLからの言葉と同じように使用します

echo $block->escapeXssInUrl($block->getUrl()) ?>"><?php echo $block->getAnchorTextHtml()

Magento 1 $this->jsQuoteEscape ($item->getName());Mahento 2を使用すると、JavaScriptで引用符をエスケープできます。escapeJsQuote

escapeUrl() HTMLをエスケープするために、推奨パラメーターを使用してhtmlspecialcharsを実際に利用します。 $result = htmlspecialchars($result, ENT_COMPAT, 'UTF-8', false);

詳細については、Magento 2の公式ドキュメントをご覧ください。


あなたは違い伝えることができるescapeUrl()とはescapeXssInUr()l?注目に値しますThe upcoming release of Magento 2.2 will deprecate these functions. Please check back on this page after the 2.2 release for updated documentation on new escape functions.
Bartosz Kubicki 2016年

3

テンプレートのセキュリティに関するDevDocsに役立つエントリがあります: XSS攻撃に対するセキュリティ対策

Re escapeXssInUrl:関数escapeUrlescapeXssInUrl内部的に呼び出し、escapeHtmlその後に呼び出します。また、MagentoはescapeUrl内部的に使用します。

Magento 2.2になったら、必ず新しいエスケープ関数をチェックしてください。新しいものが来るので出ています:

Magento 2.2の次のリリースでは、これらの機能が廃止される予定です。

新しいエスケープ関数に関する更新されたドキュメントについては、2.2リリース後にこのページを確認してください。

そして、これについての私のプレゼンテーションをここで確認することにも興味があるかもしれません:安全な入力と出力の処理-Magentoルーマニア2016に会う


実際、メイジタイタンズイタリアでのトレーニングを見てきました。いくつかの情報を明確にしたかったので、それが質問の理由の1つでした:)! youtube.com/watch?v=TBSr5Esb-8Mそれは私が気づいたことですそれも私が気付いたことですescapeXssInUrl()-それで、escapeUrl()insted を使用するべきですか?「Eav Backedn検証ルール」-それらは自動的に使用されるだけで、すでに使用していると思いますか?または、入力が追加された場所にそれらを実装する必要がありますか?
Bartosz Kubicki

1
私はそれを使用する方が良いと思うescapeUrlよりescapeXssInUrl:これは内部的に呼び出されたとしてgithub.com/magento/magento2/blob/...
アンナ・フォルクル

私はそれに気づいていません-そうです!
Bartosz Kubicki
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.