优化:调整注册/登录时的用户名长度验证,采用实际显示宽度(英文占1宽度,汉字占2宽度),限制最短4个字母(或2个汉字)
This commit is contained in:
@@ -33,8 +33,15 @@ class LoginRequest extends FormRequest
|
||||
'username' => [
|
||||
'required',
|
||||
'string',
|
||||
'min:2',
|
||||
'max:12',
|
||||
function ($attribute, $value, $fail) {
|
||||
$width = mb_strwidth($value, 'UTF-8');
|
||||
if ($width < 4) {
|
||||
$fail('用户名长度不得少于 4 个英文字母(或 2 个汉字)。');
|
||||
}
|
||||
if ($width > 12) {
|
||||
$fail('用户名长度不得超过 12 个英文字母(或 6 个汉字)。');
|
||||
}
|
||||
},
|
||||
// 允许中英文数字及常见符号,但严格过滤可能引起XSS/SQL注入的危险字符:< > ' "
|
||||
'regex:/^[^<>\'"]+$/u',
|
||||
],
|
||||
@@ -53,8 +60,6 @@ class LoginRequest extends FormRequest
|
||||
{
|
||||
return [
|
||||
'username.required' => '必须填写用户名。',
|
||||
'username.min' => '用户名长度不得少于 2 个字符。',
|
||||
'username.max' => '用户名长度不得超过 12 个字符。',
|
||||
'username.regex' => '用户名包含非法字符(不允许使用尖括号或引号)。',
|
||||
'password.required' => '必须填写密码。',
|
||||
'password.min' => '密码长度不得少于 1 个字符。',
|
||||
|
||||
Reference in New Issue
Block a user