我目前正在使用 CodeIgniter。我有 4 个表单(学生登录、登录表单、创建帐户和请求帐户)
我目前正在使用它来过滤我在其中一种表单上的输入(创建帐户):
function create()
{
$this->load->library('bcrypt');
$this->load->library('form_validation');
$this->form_validation->set_rules('fname', 'First Name', 'trim|required|alpha|max_length[14]');
$this->form_validation->set_rules('lname', 'Last Name', 'trim|required|alpha|max_length[14]');
$this->form_validation->set_rules('email', 'Email Address', 'trim|required|is_unique[users.email]|valid_email');
$this->form_validation->set_rules('username', 'Username', 'trim|is_unique[users.username]|required|alpha_numeric||min_length[4]|max_length[15]');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[7]|alpha_dash|max_length[20]');
$this->form_validation->set_rules('passwordconf', 'Confirm Password', 'trim|required|min_length[7]|max_length[20]|matches[password]|alpha_dash');
if($this->form_validation->run() == FALSE)
{
$this->view();
}
据我了解,仅当用户数据将在表格、论坛、博客(等)中以 HTML 形式回显/输出时,才应使用 HTML Purifier。我对此的理解是否正确?我问是因为我的学生登录表单将用于将数据输入数据库。然后我的学生队列页面将用于 SELECT ... FROM ... 该数据库。所以这让我感到困惑,因为当我为学生队列创建输出时,数据将存储在数据库中。它不会直接发布。
所以反过来我的思路如下:
- 验证数据以确保它是您所期望的
- 像我现在一样使用 xss_clean 过滤数据。
- 使用 PDO 准备查询将数据插入数据库
- (现在这一步让我感到困惑)我应该如何回显我的数据库数据?我应该在这一步使用 HTML Purifier 吗?
抱歉,如果这个问题已经被问了一百万次,我似乎找不到我要找的东西。我没有完全理解 HTML 净化器的概念。
编辑 1:在配置文件中使用全局 xss_clean 过滤器。