表单由于涉及到字符输入入库,是极其容易被攻击挂马!
1、前端进行验证拦截。
2、数据提交到后端进行验证,先去除两侧空格,validate并不能检测出空格。
$data['email']=trim($data['email']);
3、validate验证
这里的提示消息,手机端兼用
use think\Validate;
use think\exception\ValidateException;
try {
$this->validate( [
'first_name' =>$data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
], 'app\common\validate\Message');
} catch (ValidateException $e) {
echo "<div style='width:95vw;height:90vh;display:flex;align-items: center;
justify-content: center;'><div style='text-align:center'><img src='/static/index/images/error.png' style='width:80px'><h1 style='font-size:2em;'>".$e->getError()."</h1><br><a href='javascript:window.history.go(-1);' style='font-size:1em;colo:#1c6aba'>Back ></a></div></div>";
die();
//return alert($e->getError(),'/',6,3);
}<?php
namespace app\common\validate;
use think\Validate;
class Message extends Validate
{
protected $rule = [
'first_name' => 'require',
'last_name' => 'require',
'email' => 'email',
];
protected $message = [
'first_name.require' => 'Please fill in the first name!',
'last_name.require' => 'Please fill in the last name!',
'email.require' => 'Please fill in the email!',
];
}推荐阅读: