2016-02-02 108 views
1

我在Laravel是新的,我想有一個意見表和任何人都可以填滿它,並iput數據將在數據庫中的驗證之後插入:如何保存在數據庫中laravel 5.1安全的數據?

<?php 

namespace App\Http\Controllers; 

use App\comments; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 

class CommentController extends Controller 
{ 
    public function postCommentNew(Request $request) 
    { 
     $this->validate($request, [ 
      'commenter' => 'required|max:255', 
      'email' => 'required|max:255', 
      'comment' => 'required', 
      'post_id' => 'required' 
     ]); 
     comments::create($request->all()); 

     return redirect()->back()->with('success' , 'Comment Submited') ; 
    } 


} 

現在我想,以確保沒有人會不損壞我的網站!我想保存數據完全安全!我不知道是否有必要清理表單輸入?如果你的答案是肯定的,我該怎麼做?

我已經看到了這here

public function sanitize() 
    { 
     $input = $this->all(); 

     if (preg_match("#https?://#", $input['url']) === 0) { 
      $input['url'] = 'http://'.$input['url']; 
     } 

     $input['name'] = filter_var($input['name'], FILTER_SANITIZE_STRING); 
     $input['description'] = filter_var($input['description'], 
     FILTER_SANITIZE_STRING); 

     $this->replace($input);  
    } 
+0

我我問一個消毒過濾器只爲數據庫中插入 –

回答

1

關於到Laravel 5.1文檔:

默認情況下,刀片{{ }}報表會自動發送通過 PHP的htmlentities功能,以防止XSS攻擊。

所以答案是你不需要建立額外的東西來消毒表單輸入。

關於SQL注入,Laravel使用PDO準備語句(Reference),並且針對可能的SQL注入保護。

的例子在你的問題是要保護注射從URL,這是罰款。

最後前面我已經講過這個link給你。

這是不夠的,在文檔和我的答案計數。因此,我想從上面的鏈接再次強調這一點:

你需要做自己的滲透測試時,你的項目做是爲了 確保每一件事情是工作,確保按計劃

+0

你確實是值得歡迎的;) –