Могу ли я быть взломан, если я публикую файл php в общей папке в laravel 5

у меня есть 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>

и welcome.php:

<?php
$name = $_POST['name'];
$email = $_POST['email'];

echo "your name: ".$name;
echo "your email: ".$email;
?>

И результат:

your name: John
your email: John@gmail.com

Так. Это безопасно или опасно? Благодарю.

1

Решение

То, как вы установили свой код, не то, как следует использовать Laravel.

Для наилучшего использования Laravel вам нужно поместить html формы в папку представлений в ее собственном файле, например: form.blade.php.

Затем вам нужно сделать новый контроллер php artisan make:controller FormController

Я бы также предложил создать папку запросов: php artisan make:request FormRequest

В рамках запросов вы маркируете каждый из ваших необходимых HTML name= поля например:

public function rules()
{
return [
'name' => 'required',
'email' => 'required',
];
}

В вашем файле маршрутов вам нужно будет добавить:

 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();
}

Это всего лишь основная разбивка того, что вы должны делать. Вам, очевидно, нужно заполнить логику.

PS в HTML, поскольку мы добавили запросы, чтобы проверить, были ли они заполнены, вы добавите что-то вроде:

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

Я надеюсь, что это приведет вас к правильным путям Laravel.

Я бы также посоветовал взглянуть на Laracasts, так как у них есть отличные учебники.

1

Другие решения

Вы должны помнить одну вещь: Laravel — это фреймворк MVC (Model-View-Controller). В этом коде я вижу «Vanilla» PHP, и Laravel не предназначен для такого использования.

Весь смысл в том, что вся внутренняя обработка должна выполняться вне общей папки, а именно в компонентах Model и Controller. Все, что вы помещаете в общую папку, рискованно, потому что в общей папке есть chmod 777. Это означает, что если вы используете рискованные функции в исходных файлах в этой папке, хакеры могут использовать их.

1

Написание простых php-файлов, безусловно, более небезопасно, чем работа с фреймворковой системой MVC от Laravel. Веб-пауки могут отслеживать URL-адреса и, возможно, могут найти вашу форму и URL-адрес действия, даже если они находятся в каталоге фреймворка. Существует множество способов, с которыми у вас могут возникнуть проблемы с этой формой, но самым простым может быть проверка того, что происходит при отправке <script>alert();</script> в качестве входа.

Надеюсь, поможет

PS.

которые очень сильно зависят от кодирования и очистки, если вы не очистите свой ввод чем-либо, как я вижу в этом файле PHP, вы можете использовать <script> в качестве входных данных, если вы плохо дезинфицируете, может быть <scri<script>pt> может работать … или &#60;script&#62; и т. д. и т. д. … в качестве меры безопасности вы всегда должны знать, что входные данные, вероятно, являются вредоносными, а санитарная обработка — это одна из вещей, которые фреймворки делают для вас

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector