preg_match 清理输入以获得最佳安全性
preg_match to sanitize input for the best security
我正在 wordpress 网站上工作(我是网络开发的新手)。我安装了一个主题,现在我正在寻求改进它并使其适合我的需要。关于注册表单,主题检查密码中无效字符的代码是这样的:
else if(preg_match("/^([a-zA-Z0-9@#-_$%^&+=!?]{1,20})$/", $data['user_password'])==0) {
SendtoUSER::$messages[]=__('Forbidden characters detected', 'mytheme');
用户名是这个
if(preg_match('/[@\s]/', $username)) {
$valid=false;
}
我做了一些研究,我理解了大部分表达方式 "/^([a-zA-Z0-9@#-_$%^&+=!?]{1,20})$/"
- 我不明白的是为什么;仍然有效使用(我观察到删除 #-_
会阻止 ;
工作,所以 #-_
是一个 inverval 吗?)我的问题是 @#-_$%^&+=!?
在表达式中意味着什么?这段代码是否足够好,实施 preg_match 以获得最大安全性的一些好的做法是什么?预先感谢您的回复。
我想在 WordPress 中,sanitize_text_field
将是最好的解决方案。您可以验证它:
if ( sanitize_text_field( $data['user_password'] ) !== $data['user_password'] ) {
$valid=false;
}
此外,我已经检查了它在配置文件页面上的工作方式,它看起来像在核心中,它验证为:
$pass1 = trim( $_POST['pass1'] );
//...
// Check for "\" in password.
if ( false !== strpos( wp_unslash( $pass1 ), '\' ) ) {
$errors->add( 'pass', __( '<strong>Error</strong>: Passwords may not contain the character "\".' ), array( 'form-field' => 'pass1' ) );
}
可能最好的解决方案也是复制 WordPress 解决方案。
我正在 wordpress 网站上工作(我是网络开发的新手)。我安装了一个主题,现在我正在寻求改进它并使其适合我的需要。关于注册表单,主题检查密码中无效字符的代码是这样的:
else if(preg_match("/^([a-zA-Z0-9@#-_$%^&+=!?]{1,20})$/", $data['user_password'])==0) {
SendtoUSER::$messages[]=__('Forbidden characters detected', 'mytheme');
用户名是这个
if(preg_match('/[@\s]/', $username)) {
$valid=false;
}
我做了一些研究,我理解了大部分表达方式 "/^([a-zA-Z0-9@#-_$%^&+=!?]{1,20})$/"
- 我不明白的是为什么;仍然有效使用(我观察到删除 #-_
会阻止 ;
工作,所以 #-_
是一个 inverval 吗?)我的问题是 @#-_$%^&+=!?
在表达式中意味着什么?这段代码是否足够好,实施 preg_match 以获得最大安全性的一些好的做法是什么?预先感谢您的回复。
我想在 WordPress 中,sanitize_text_field
将是最好的解决方案。您可以验证它:
if ( sanitize_text_field( $data['user_password'] ) !== $data['user_password'] ) {
$valid=false;
}
此外,我已经检查了它在配置文件页面上的工作方式,它看起来像在核心中,它验证为:
$pass1 = trim( $_POST['pass1'] );
//...
// Check for "\" in password.
if ( false !== strpos( wp_unslash( $pass1 ), '\' ) ) {
$errors->add( 'pass', __( '<strong>Error</strong>: Passwords may not contain the character "\".' ), array( 'form-field' => 'pass1' ) );
}
可能最好的解决方案也是复制 WordPress 解决方案。