アプリケーションにデータを受け入れる前に、それがフォーム送信からの POST データであろうと、URI データであろうと、次の手順に従う必要があります。
- データをフィルタリングします。
- データを検証して、正しい型、長さ、サイズなどに準拠していることを確認します (この手順で手順 1 を置き換える場合があります)。
- データベースに送信する前にデータをエスケープします。CodeIgniter は、このプロセスを支援するために次の関数を提供します。
XSS フィルタリング
このフィルターは、悪意のある JavaScript をデータに埋め込むために一般的に使用される手法を探します
XSS フィルターを使用してデータをフィルター処理するには、xss_clean()
次のメソッドを使用します。
データを検証する
CodeIgniter には、データの検証、フィルタリング、および準備を支援するフォーム検証ライブラリがあります。
$this->form_validation->set_rules('username', 'Username','trim|required|min_length[5]|max_length[12]');
フィールドをトリミングし、必要に応じて長さをチェックし、両方のパスワード フィールドが一致していることを確認します。続きを読む
データベース挿入前にすべてのデータをエスケープする
情報をエスケープせずにデータベースに挿入しないでください。
詳細については、クエリ ビルダー クラスを参照してくださいhttps://www.codeigniter.com/userguide3/database/query_builder.html
より詳しい情報
Codeigniter はあなたのアプリケーションをセキュアにしませんhttps://security.stackexchange.com/questions/97845/how-secure-is-codeigniter-3-x
すべては実際には開発者に依存します。フレームワークは、アプリケーションを構築するための構造を提供するだけです。コア php を作成すると、より安全になります。
その他のリンク:
PHPでパスワードをハッシュするためにbcryptをどのように使用しますか?
SQL インジェクションを防ぐには、PDO 準備済みステートメントで十分ですか?