2016-02-02 78 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

你确实是值得欢迎的;) –