2016-12-24 11 views
0

titleと呼ばれるブレードセクションを定義しました。たとえば、@section('title', 'Log in')のように使用し、<h1>Log in</h1>と表示されます。しかし、いくつかのページでは、タイトルはユーザ入力(すなわち、$subject)によって決定されます。私が@section('title', $subject->name)を実行すると、この値はエスケープされず、私のサイトはXSS攻撃に開放されていることがわかりました。どうすればこれを避けることができますか?@sectionタグの内容をエスケープする

答えて

2

Laravelでは、eヘルパ関数を使用して値をエスケープできます。あなたはBladeCompilerコードで見てみるならば、あなたはLaravel自体がデフォルトe(..)

に出力( {{ }})をエスケープ変換していることがわかります

@section('title', e($subject->name)) 

:あなたはこのような何かを行うことができるはず