質問させてください。
今 Laravel でこちらのページを参考にしながらお問い合わせフォームを作っているのですが、「メールテンプレートを作成する」部分で疑問に思ったことがありましたので質問させていただきました。
メールの本文用テンプレートでは以下のように書かれています。
php
1// resources/views/contact/mail.blade.php 2■お問い合わせ内容<br> 3{!! nl2br($body) !!} // {!! nl2br(e($body)) !!} ← にしなくて大丈夫なのでしょうか・・・
一方でその上にある「入力内容確認ページ」の view では
php
1// resources/views/contact/confirm.blade.php 2{!! nl2br(e($inputs['body'])) !!}
と書かれていましてe()
ヘルパー関数で囲っているので、XSS対策しているということが分かるのですが、本文用テンプレートのほうでもe()
で囲わなくて大丈夫なのでしょうか。
他にもいくつかサイトを見てみたのですが、どれも本文用テンプレートではe()
を使ってませんでした。
試しに自分で作ったメールフォームで本文のところに以下のように入力して送ってみたところ、スタイルで記述した方は色が変わっていたのですが、スクリプトは実行されてないように見えました。(メールソフトで開いただけなので、詳しいことは分からなかったです。)
<span style="color:red;">あああ</span> <script>window.alert('あああ');</script>
本文用テンプレートではe()
を使っていないのはどのような理由からでしょうか。
もし詳しい方がいらっしゃいましたらご教授いただけると助かります。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/11 05:30