如果我在laravel 5的公用文件夹中公开一个php文件,我会被黑客攻击吗

如果我在laravel 5的公用文件夹中公开一个php文件,我会被黑客攻击吗,php,laravel,Php,Laravel,我有一个example.php并将其移动到laravel中的公用文件夹中 example.php: <html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type

我有一个example.php并将其移动到laravel中的公用文件夹中
example.php:

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

所以。安全还是危险?谢谢。

编写普通php文件肯定比使用Laravel的框架MVC系统更不安全。Web爬行器可以跟踪URL,甚至可以找到表单和操作URL,即使它们位于框架目录中。有很多方法可以让您在表单中遇到问题,但最简单的方法是测试发送
alert()时会发生什么作为输入

希望能有帮助

附言


这在很大程度上取决于编码和清理,如果您不使用任何东西清理输入,正如我在PHP文件中看到的,您可以使用
作为输入,如果清理不好,可能
可以工作。。。或
<;脚本>等等,等等。。。作为安全措施,您始终需要知道输入可能是恶意的,清理是框架为您所做的事情之一

您必须记住的一点是,Laravel是MVC(Model View Controller)框架。我在这段代码中看到的是“香草”PHP,而Laravel并不是真正打算这样使用的


这里的要点是,所有后端处理都应该在公用文件夹之外完成,即在模型和控制器组件中。您在公用文件夹中放置的所有内容都有风险,因为公用文件夹具有chmod 777。这意味着,如果您在该文件夹的源文件中使用有风险的函数,黑客可能会利用这些函数进行攻击。

您设置代码的方式不是如何使用Laravel

为了更好地使用Laravel,您需要将表单html放在视图文件夹中自己的文件下,例如:form.blade.php

然后需要制作一个新的控制器
php artisan make:controller-FormController

我还建议创建一个Requests文件夹:
php-artisan-make:request-FormRequest

在请求中,您为每个所需的html
name=
字段打上品牌,例如:

public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required',
        ];
    }
在routes文件中,您需要添加:

 Route::post('/link', 'FormController@submitForm');
在控制器中,您可以执行以下操作:

<?php
use \App\Http\Requests\FormRequest;

public function submitForm(FormRequest $formRequest)
    {
        // your logic would then go in here. Firstly fetch the request

        $fetchData = $formRequest->get();
    }

在您发布的代码片段中没有固有的危险或风险。任何知道路径或URL的人都可以使用/public中的所有内容,但是如果您的PHP文件得到了正确的服务,那么您不必担心。但是,如果您在Laravel项目中将PHP文件放入/public中,那么您并不是在使用Laravel。你想做什么?用户填写输入。我直接为用户测试制作了基本php教程。一点问题也没有:)
 Route::post('/link', 'FormController@submitForm');
<?php
use \App\Http\Requests\FormRequest;

public function submitForm(FormRequest $formRequest)
    {
        // your logic would then go in here. Firstly fetch the request

        $fetchData = $formRequest->get();
    }
@if ($errors->has('name'))
    <span class="help-block">
        <strong>{{ $errors->first('name') }}</strong>
    </span>
@endif