現在CodeIgniterを使用しています。4 つのフォームがあります (学生のサインイン、フォームでのログイン、アカウントの作成、アカウントのリクエスト)
現在、これを使用して、フォームの1つで入力をフィルタリングしています(アカウントの作成):
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 Purifier は、ユーザー データがテーブル、フォーラム、ブログなどで HTML としてエコー/出力される場合にのみ使用する必要があります。これについての私の理解は正しいですか? 学生のログインフォームを使用してデータベースにデータを入力するため、質問しています。次に、学生キュー ページを使用して SELECT ... FROM ... そのデータベースを使用します。学生キューの出力を作成すると、データがデータベースに格納されるため、これは私を混乱させます。直接投稿するだけではありません。
したがって、私の思考の流れは次のようになります。
- データを検証して、期待どおりであることを確認します
- 現在のように xss_clean でデータをフィルタリングします。
- PDO で準備されたクエリを使用して、データを DB に挿入します
- (今、このステップは私を混乱させます)データベースデータをどのようにエコーする必要がありますか? このステップで HTML Purifier を使用する必要がありますか?
この質問が何百万回も尋ねられている場合は申し訳ありませんが、探しているものが見つからないようです。私は HTML purifier の概念を完全には理解していません。
編集 1: 構成ファイルでグローバル xss_clean フィルターを使用します。