BLOGスタッフブログ

インソースマーケティングデザイン

2012.08.27 システム

CakePHPのセキュリティ対策(SQLインジェクション)

前回は、CakePHPのセキュリティ対策(XSS:クロスサイトスクリプティング)について紹介しました。 Webアプリケーションを開発する際、セキュリティ対策を考慮した セキュア・プログラミングが必須となっています。 CakePHPにてどのようにセキュリティ対策を行っているかを紹介します。 今回はSQLインジェクションについてです。 SQLインジェクションとは、データベースへの命令(SQL文)の意味を書き換えられ、 データベースを不正に操作されてしまうというものです。 不正に操作されることで、情報の改ざんや漏えいといった問題に発展します。 SQLインジェクションの一番の原因は、SQLの組み立て方に問題があります。 CakePHPの場合、「find」や「read」などの組込関数を使っていれば自動処理されるので対策は不要です。 そのため、なるべくCakePHPの組込関数を使うようにします。 しかし、どうしても自分でSQLを書かなければいけない場合は、 以下のように全てプレースホルダで実装します。

$user_id = ‘123’; $sql = ‘SELECT user_name FROM users WHERE user_id = ?’; $params = array(user_id); $result = $this->query($sql, $params, false);

さらに、どうしてもプレースホルダではなく、文字列連結でSQLの組み立てる場合は、 パラメータを適切にエスケープ処理する必要があります。 以上です。ではまた。

インソースマーケティングデザインが書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します