如何在laravel 5.1中保存数据库安全数据?

问题描述 投票:2回答:1

我是Laravel的新手,我想要一个注释表,任何人都可以填写它,输入数据将在验证后插入数据库中:

<?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);     
    }
security laravel-5.1 sanitization
1个回答
2
投票

关于Laravel 5.1文件:

默认情况下,Blade {{ }}语句通过PHP的htmlentities函数自动发送,以防止XSS攻击。

所以答案是你不需要构建额外的东西来清理表单输入。

关于SQL注入,Laravel使用PDO预处理语句(Reference),并且它可以防止可能的SQL注入。

您的问题中的示例是打算保护注入URL,这很好。

最后我先前提到了这个link

仅依靠文档和我的答案是不够的。因此,我想再次从上面的链接中突出显示:

在项目完成后,您需要进行自己的渗透测试,以确保每件事物都按计划运行和保护

© www.soinside.com 2019 - 2024. All rights reserved.