タグ

2007年7月7日のブックマーク (9件)

  • ダイレクトSQLコマンドインジェクションについて - Do You PHP?

    間違いやご意見がありましたら、ご指摘下さい 「クロスサイトスクリプティングについて」に続き、IPA/ISECネタ第2弾です。それにしても、「ダイレクトSQLコマンドインジェクション」って長いですね。。。(^-^; ダイレクトSQLコマンドインジェクション とは ダイレクトSQLコマンドインジェクション攻撃とは,引数などのパラメタにSQL文を混ぜ込んでおき(インジェクション),プログラム内部でそのSQL文を実行させてしまう攻撃手法(IPAセキュリティセンター(IPA/ISEC)のセキュア・プログラミング講座から引用)のこと。 詳細については、IPA/ISECの以下のページに分かりやすく書かれています。 セキュア・プログラミング講座 2-1.SQL組み立て時の引数チェック イメージとしては、「SQL版クロスサイトスクリプティング」というところでしょうか?SQL文を作成する際、where句のパラ

    alembert
    alembert 2007/07/07
    インジェクション
  • [ThinkIT] 第1回:SQLインジェクションによるデータベース操作 (1/3)

    SQLインジェクションでは、クエリなどの任意データを、データベースが実行するSQL文に挿入します。挿入されたクエリは、意図しないデータを検索したり、データベースの情報を変更したり削除したりするというように、様々な操作をデータベースに行います。問題を実証するために次の例を見てみましょう。 // 問題を実証するための入力 $name = "ilia'; DELETE FROM users;"; mysql_query("SELECT * FROM users WHERE name='{$name}'"); 上記の関数内では、ユーザが指定した名前とnameカラムの値が一致したデータをusersテーブルから取り出すことを想定しています。普通、$nameには、iliaといった文字列のように、アルファベットとスペースからできた文字列が格納されています。 しかしここでは、$nameにまったく新しいクエリ

    alembert
    alembert 2007/07/07
    インジェクション
  • COOL ONLINE - JAPAN - JAPAN ONLINE

    Ukai, or cormorant fishing, is a captivating and ancient Japanese tradition that dates back over 1,300 years. This unique fishing technique, practiced along several rivers in Japan, combines history,...

    alembert
    alembert 2007/07/07
    インジェクション
  • 日曜プログラミング講座/PHP言語 - データベース編 - Water-Sunlight

    3C.5 非SELECT文の実行 ### 非select文の実行 $res =& $db->query($sql); if(PEAR::isError($res)){ /* エラー処理 */ }

    alembert
    alembert 2007/07/07
    インジェクション
  • cles::blogのチューニング

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « 偽装ロボット来襲 :: やっと採録に » 2004/11/03 cles::blogのチューニング  mysql  tuning 39 8へぇ さすがに昨日の一件には参ってしまったのですが、最近MySQLの負荷が高すぎることは確かなので少しチューニングをしてみることにしました。 その昔、Oracleバリバリだったときにはチューニングばかり勉強したりしていた時期もあったので、チューニングで何をしなければならないかというのは大体わかっているつもりです。今回はそのときの経験を生かして、MySQLのチューニングに挑戦してみます。 † まずはボトルネック解析から まずはなぜ遅いのかという原因を絞り込みます。これはDBのチューニングに限らず全てのチューニングという作業に共通したものですよね。これをやらずにチュ

    cles::blogのチューニング
    alembert
    alembert 2007/07/07
    クエリキャッシュ
  • MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.9.3 MySQL クエリーキャッシュ

    クエリーキャッシュには、クライアントに送信された対応する結果とともに、SELECT ステートメントのテキストが格納されます。あとで同じステートメントを受け取った場合、サーバーはそのステートメントを再度解析して実行する代わりに、クエリーキャッシュから結果を取得します。クエリーキャッシュはセッション間で共有されるため、1 つのクライアントで生成された結果セットを、別のクライアントによって発行された同じクエリーへの応答で送信できます。 クエリーキャッシュは、あまり頻繁に変更されないテーブルがあり、それに対してサーバーが多くの同一のクエリーを受け取る環境で役立つことがあります。これは、データベースの内容に基づいて、多くの動的ページを生成する多くの Web サーバーに一般的な状況です。 クエリーキャッシュは古くなったデータを返しません。テーブルが変更されると、クエリーキャッシュ内の関連エントリがフラ

    alembert
    alembert 2007/07/07
    クエリキャッシュ
  • 【 ほでなすPHP 】 PHP5の基本 -> 例外処理

    例外処理 例外処理ってなに? 「例外処理」というのは、「例外」が投げられた場合の処理の事です。わけが解かりませんね。まず「例外」って何なのか?大雑把に言うと「エラー(問題)」の事です。通常は、エラーが発生したら「エラーですねちゃんちゃん」とそこで処理を中断するか何事も無かったかのようにスルーしてしまう所を、「例外処理」では、実行中にエラーが発生した場合の処理を記述しておいて、エラーが発生した場合でも処理の中断はせず、発生したエラーを「例外」として“投げ”、記述しておいた“エラー発生時の処理”を実行します。この“エラー発生時の処理”が「例外処理」であり、これを実現するのが「例外処理機能」です。この説明で理解できたら天才ですね(何)。 要するに、何か問題が発生した場合に“エラーですから!切腹!”するのではなく、“エラーみたいですよ”と報告し、その報告を受け取って何かしらの処置をするのが「例外処

    alembert
    alembert 2007/07/07
    例外処理
  • 例外処理 - phpspot

    のように戻り値のチェックをしていましたが、エラーというものは、呼び出し側がエラー制御を行うのではなく、呼ばれた側で、どういうエラーがあったか、というものがあった方が自然で、呼ばれた側がエラー処理を行うため、モジュールの場合より再利用性が高くなるでしょう。 更に上記では、どういうエラーが起こってエラーが出ているのかということが想像しにくいですね。 そこで try~catch です。 // exception クラスを継承した MyException(例外クラス)の定義 class FileNotFoundException extends exception { function FileNotFoundException($_error) { $this->error = $_error; } function getException() { return $this->error; }

    alembert
    alembert 2007/07/07
    例外処理
  • 集計を行う「GROUP BY」句

    今回掲載の内容 SQLで集計を行うには? 「GROUP BY」句の制約 列名の指定「AS」 特定の集計行のみの表示 SQLで集計を行うには? 今回は、SQL文での集計の方法(GROUP BY)を説明します。前回までに説明した「SELECT」文では、データを取得し表示させた場合、表示されるデータは元のデータの一部、もしくはすべてでした。今回使用する「GROUP BY」句を使用すると、特定の列をキーにした合計値や平均値などが表示される結果となります。まずは、例1のSQL文を実行してみましょう。前回説明したとおり、「Order Details」テーブルの指定に " "( ダブル・クオーテーション)を使用していますので、注意してくださいね。

    集計を行う「GROUP BY」句
    alembert
    alembert 2007/07/07
    GROUP BY