
第四企画 坂井 潔 ここではPHPでSQLインジェクション対策としてエスケープ・クォート処理を行うケースを説明します。なおSQLインジェクションの簡単な説明や、プレースホルダを用いてより効果的な対策を行うケースに関してはプレースホルダ編を参照してください。 エスケープとは? それではエスケープ処理とはなんでしょうか? 分かりやすいケースとして、文字列を扱う場合を説明します。 例えば「名前がO'Reillyの行をテーブルusersから取得する」あるいは「テーブルusersに、名前はO'Reilly、メールアドレスはo'reilly@example.comとo'reilly_mobile@example.netの2つを改行で繋げたデータを、行として挿入する」と言ったSQLをつくると、この命令文全体が1つ文字列になります。その命令文としての文字列の中に、値としての文字列を埋め込む場合には、それが
PEAR::MDB2 MDB2はPHPでデータベースを操作するためのPEARのパッケージの1つです。pg_query_params、PDOなどと比較すると動作が低速ではありますが、 文字エンコーディングを意識している integer、float、boolean型などの値を、文字列としてではなく数値・論理値としてやりとり出来る bytea型のカラムを、ラージオブジェクト(blob)型として遜色なく扱える 別のデータベース管理システム(MySQL、Oracleなど)から、あるいはそちらへの移行がしやすい などの理由で、MDB2を使うことを推奨します。 データベースを扱うPEARパッケージには他にもPEAR::DB、PEAR:MDBがありますが、これらの新規の開発はすでに終了しているようなので、できるだけMDB2を使用してください。なおインストールは、権限のあるユーザーで以下のようにします。 #
第四企画 坂井 潔 SQLインジェクションの脅威からシステムを守るために、プログラミング言語/スクリプトからSQLを発行するときには、パラメータを適切に処理しなくてはなりません。今回はプレースホルダ編と題し、SQLインジェクション対策として最も簡単で効果的な方法を、PHPで説明します。 SQLインジェクションとは? まず「SQLインジェクション」とは何かおさらいしましょう。SQLインジェクションとは、アプリケーション(この場合はPHPスクリプト)に渡すパラメータの値を操作することで、元々は意図されていない処理をSQLとして実行させてしまうことです。 簡単な例をあげてみます。ユーザーから文字列「山田」が渡されたとき、以下のようなSELECT文を発行することにします。 SELECT * FROM users WHERE username LIKE '%山田太郎%'; ユーザーに入力された文字列
This guide describes common security problems in web applications and how to avoid them with Rails. After reading this guide, you will know: How to use the built-in authentication generator. All countermeasures that are highlighted. The concept of sessions in Rails, what to put in there and popular attack methods. How just visiting a site can be a security problem (with CSRF). What you have to pay
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く