到目前为止,我有一个简单的Web应用程序,使用laravel框架在php中编写。
我的问题在于标题:如果我有一个包含多个SELECT
元素的Web表单,那么有人可以使用javascript将新选项附加到`SELECT'元素并提交表单(因此保存不是我的数据库中的选项的项目?)?
答案 0 :(得分:0)
正如评论所暗示的那样,当然可以附加选项,甚至可以更改提交内容的值。
为了防止这种情况发生,您可以使用服务器端验证来检查传入的内容.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;
您可以使用更多验证,只需阅读docs。