电子邮件和密码的 CodeIgniter 验证规则
Posted
技术标签:
【中文标题】电子邮件和密码的 CodeIgniter 验证规则【英文标题】:CodeIgniter Validation Rules for Email and Password 【发布时间】:2015-08-22 19:36:49 【问题描述】:我习惯于使用 CodeIgniter 对应用程序进行编码,而且我完全是新手。我刚开始学习 CodeIgniter 3.0,并达到了验证规则。
我注意到xss_clean
现在从验证类中消失了,那么在验证电子邮件和密码时应该使用什么规则?仅使用 trim
、valid_email
和 required 就足够安全了?
很抱歉,如果有人问过这个问题,但我四处搜索,发现人们使用 xss_clean
的旧主题。
【问题讨论】:
xss_clean 在 Codeigniter 3.0 中已弃用。它不再出现在 form_validation 库中。旧的对于完全防止 XSS 也没有多大用处。您应该有自定义功能来清理用户数据。在 html 上打印时更好地清理用户数据。 【参考方案1】:包括电子邮件助手:
$this->load->helper('email');
对于电子邮件:
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|xss_clean');
或者您也可以使用 php 过滤器进行电子邮件验证
filter_var($email, FILTER_VALIDATE_EMAIL);
密码表达式
public function chk_password_expression($str)
if (1 !== preg_match("/^.*(?=.6,)(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", $str))
$this->form_validation->set_message('chk_password_expression', '%s must be at least 6 characters and must contain at least one lower case letter, one upper case letter and one digit');
return FALSE;
else
return TRUE;
调用你应该使用的函数:
$this->form_validation->set_rules( 'password', 'Password', 'trim|required|min_length[6]|max_length[15]|callback_chk_password_expression');
注意:chk_password_expression 应该在同一个类控制器或父类中。电子邮件助手应包含为 $this->load->helper('email');
【讨论】:
CodeIgniter 3 中的 xss_clean 不是贬值了吗?另外,密码表达式有什么作用? 除此之外,在电子邮件助手类中,它说“电子邮件助手已弃用,目前仅保留向后兼容。” codeigniter.com/userguide3/helpers/… 在这里查看如何使用它。你也可以使用 filter_var($email, FILTER_VALIDATE_EMAIL);以上是关于电子邮件和密码的 CodeIgniter 验证规则的主要内容,如果未能解决你的问题,请参考以下文章