我有一个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
因此。这是安全还是危险?感谢。
答案 0 :(得分:1)
<script>alert();</script>
作为输入发送时会发生什么。
希望有所帮助
PS。
非常依赖编码和清理,如果你不用任何东西清理你的输入,正如我在PHP文件中看到的那样,你可以使用<script>
作为输入,如果你消毒不好,也许<scri<script>pt>
可以工作...或<script>
等等...作为安全措施,你总是需要知道输入可能是恶意的,清理是框架为之做的事情之一你
答案 1 :(得分:1)
你必须记住的一件事是Laravel是MVC(模型 - 视图 - 控制器)框架。我在这段代码中看到的是“Vanilla”PHP和Laravel实际上并不打算以这种方式使用。
这里的重点是所有后端处理都应该在公共文件夹之外完成,即在模型和控制器组件中完成。你放在公共文件夹中的所有东西都有风险,因为公用文件夹有chmod 777.这意味着如果你在该文件夹的源文件中使用有风险的函数,黑客可能会利用它们。
答案 2 :(得分:1)
你设置代码的方式不是Laravel的使用方式。
为了最好地使用Laravel,您需要将表单html放在其自己的文件下的views文件夹中,例如:form.blade.php。
然后,您需要创建一个新的控制器php artisan make:controller FormController
我还建议制作一个Requests文件夹: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();
}
这只是你应该做的事情的基本分解。你显然需要填写逻辑。
html中的PS ,因为我们已经添加了检查是否已填充的请求,您需要添加以下内容:
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
我希望这能让你走上Laravel的正确轨道。
我还建议看看Laracasts,因为他们有一些很棒的教程。