2017-08-25 9 views
2

これについてインターネットで検索していますが、これに対して正確な解決策を見つけることができませんでした。laravelで入力を保護する方法5.4

データがデータベースに保存されるとき、laravelはすでに検証を処理していると考えました。しかし、データベースのデータをチェックすると、<body>などのhtmlタグを受け付けるレコードを見ることができます。私のウェブサイトが壊れてしまうので、ブラウザに表示することはできません。

コントローラの投稿でリクエストを使用してデータを保存する方法は次のとおりです。

public function submitTask(Request $request) 
{ 
    Task::create([ 
    'task_title' => $request->title 
    ]); 
} 

私のモデルの名前はタスクです。

XXSと他のSQLインジェクションからデータを保護したいと思います。

どうすればよいですか?どうもありがとう。

答えて

1

それはそれが設計された方法です。データをデータベースに保存する前に、そのデータをエスケープする必要はありません。そこに、それは不快です。データが出力されたら、そのデータをエスケープする必要があります。プレゼンテーションロジックとして、それはViewの責任であり、LaravelではBladeで行います。 5.0より前では、三重中括弧{{{ }}}を使用しなければなりませんでしたが、現在はデフォルトで{{ }}に設定されています。

あなたはこのhere

+0

これについての詳細を読むことができますが、すべてのデータが3の内側に置かなければならないことを意味しますか{{{? – smzapp

+0

右、コントローラからビューに注入したすべてのデータ。 5.0以降、中括弧は2つしか使用できませんが、デフォルトではデータをエスケープします。 – ishegg

+0

すべてがうまくいきますが、タイトルセクションにデータを追加すると、エラーを返します。 'Parse error:syntax error、unexpected '<'('このコードでは '@section( 'title'、{{$ data-> title} }) ' – smzapp

関連する問題