【问题标题】:Laravel 5.0 - Blade Template ErrorsLaravel 5.0 - 刀片模板错误
【发布时间】:2014-11-08 01:50:28
【问题描述】:

只是在玩 Laravel 5,并且在使用 Blade 模板语法时遇到了困难。看来我所有的特殊字符都被转义了。我的设置有问题吗?

为了展示我的设置,我在config/app.php 中添加了以下内容:

别名:'Form' => 'Illuminate\Html\FormFacade', 'Html' => 'Illuminate\Html\HtmlFacade' 服务商:'Illuminate\Html\HtmlServiceProvider'

现在这是我的刀片视图:

@extends('layout')

@section('content')

    {{ Form::open() }}

    {{ Form::close() }}

@stop

这是浏览器中的输出:

<form method="POST" action="http://test.app:8000/categories/create" accept-charset="UTF-8"><input name="_token" type="hidden" value="m4RdpqdbbqQ2F7iwfDkSDKTzEmaBGNvpJbj5LnqE"> </form>

这是来自视图源的输出:

<!doctype HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>My Site</title>
    </head>
    <body>

        <header></header>

        <content>
    &lt;form method=&quot;POST&quot; action=&quot;http://test.app:8000/categories/create&quot; accept-charset=&quot;UTF-8&quot;&gt;&lt;input name=&quot;_token&quot; type=&quot;hidden&quot; value=&quot;m4RdpqdbbqQ2F7iwfDkSDKTzEmaBGNvpJbj5LnqE&quot;&gt;

    &lt;/form&gt;

</content>

    </body>
</html>

【问题讨论】:

    标签: laravel blade laravel-5


    【解决方案1】:

    Laravel 5 中,{{ }} 将自动转义。你现在需要使用的是{!! !!}

    {!! Form::open() !!}
    
    {!! Form::close() !!}
    

    有关更改的更多信息,请访问 https://laracasts.com/discuss/channels/general-discussion/new-blade-tag-for-unescaped-data-thoughts(感谢 @user1960364)。

    【讨论】:

    • 完美,谢谢... WTF!!!为什么泰勒改变了这一点?将尽快接受答复。
    • 出于安全原因已更改。逃避是更好的做法。让它默认逃逸可以防止懒惰的程序员犯错误。
    【解决方案2】:

    如果您必须使用旧的(L4.2 或更低版本)Blade 语法,请在 AppServiceProvider@register 的底部添加以下行:

    \Blade::setRawTags('{{', '}}');
    \Blade::setContentTags('{{{', '}}}');
    \Blade::setEscapedContentTags('{{{', '}}}');
    

    这不应该掉以轻心,并且可能会使您的应用程序更容易受到 XSS 攻击,因此请谨慎使用。

    【讨论】:

    • 我不会说这“可能会使您的应用程序更容易受到 XSS 攻击”。旧语法并不比新语法更容易受到 XSS 攻击。只要你记得使用什么符号来转义易受攻击的变量,新的或旧的语法都会做同样的事情。
    猜你喜欢
    • 2015-10-24
    • 2017-07-15
    • 2013-04-29
    • 1970-01-01
    • 2017-04-03
    • 2018-05-31
    • 2014-02-05
    • 2014-12-08
    相关资源
    最近更新 更多