转义@section标记中的内容

时间:2016-12-24 00:49:06

标签: laravel xss blade sanitization

我已经定义了一个名为title的刀片部分,我使用它,例如,@section('title', 'Log in'),然后将其打印为<h1>Log in</h1>。但是在某些页面上,标题将由用户输入(即$subject)确定。我发现如果我@section('title', $subject->name),那么这个值将不会被转义,这会使我的网站对XSS攻击开放。我怎么能避免这个?

1 个答案:

答案 0 :(得分:2)

在Laravel中,您可以使用e辅助函数来转义值。你应该可以这样做:

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

如果您查看BladeCompiler代码,可以看到Laravel本身会将默认转义输出({{ }})转换为e(..)