可以通过浏览器中的开发人员控制台将值附加到选择元素上吗?


Can you append values to a select element through the developer console in the browser?

到目前为止,我有一个简单的web应用程序,使用laravel框架用php编写。

我的问题是在标题:如果我有一个有多个SELECT元素的web表单,有人可以使用javascript将新选项附加到' SELECT'元素并提交表单(因此保存不应该在我的数据库中选择的项目?)?

正如评论所建议的,当然可以添加选项,甚至更改正在提交的值。

为了防止这种情况,您可以使用服务器端验证来检查传入的内容。Laravel提供了开箱即用的验证,使这一切变得轻而易举。

您想使用的验证规则是in:

需要验证的字段必须包含在给定的值列表中。

在接收请求的控制器函数中,只需在顶部添加以下内容,以便在将请求传递到数据库之前验证请求:

$validator = Validator::make($request->all(), [
            'select_input' => 'in:foo,bar',
        ], [
            'select_input.in' => 'The option selected was not valid!',
        ]);
        if ($validator->fails()) {
            return Redirect::back()
                ->withErrors($validator)
                ->withInput();
        }

你需要把这些添加到你的控制器的顶部:

use Validator;
use Input;
use Redirect;

您可以使用更多的验证,请阅读文档