2010年12月7日火曜日

phpMyAdminのディスク使用量のオーバーヘッドについて

phpMyAdminのテーブルを選択して、下の【ディスク使用量】-【オーバーヘッド】が何なのか?わからず、テーブルを削除すると増えるので、何かをソースから調べた。

ソースを追いかけていったら下記の箇所から取得している事がわかり、
オーバーヘッドは、「DATA_FREE」を表示していました。
オーバーヘッドって項目名が心配になる!フリー領域に変えてほしい。

INFORMATION_SCHEMA TABLESの説明
http://dev.mysql.com/doc/refman/5.1/ja/tables-table.html

コマンド説明
http://dev.mysql.com/doc/refman/5.1-olh/ja/show-table-status.html
Data_free:割り当てられたけれど使用されていないバイト数
(MySQL 5.1.24 からは、この情報は InnoDB テーブルに対しても表示されます)

database_interface.lib.php 292行目
        $sql = '
             SELECT *,
                    `TABLE_SCHEMA`       AS `Db`,
                    `TABLE_NAME`         AS `Name`,
                    `ENGINE`             AS `Engine`,
                    `ENGINE`             AS `Type`,
                    `VERSION`            AS `Version`,
                    `ROW_FORMAT`         AS `Row_format`,
                    `TABLE_ROWS`         AS `Rows`,
                    `AVG_ROW_LENGTH`     AS `Avg_row_length`,
                    `DATA_LENGTH`        AS `Data_length`,
                    `MAX_DATA_LENGTH`    AS `Max_data_length`,
                    `INDEX_LENGTH`       AS `Index_length`,
                    `DATA_FREE`          AS `Data_free`,
                    `AUTO_INCREMENT`     AS `Auto_increment`,
                    `CREATE_TIME`        AS `Create_time`,
                    `UPDATE_TIME`        AS `Update_time`,
                    `CHECK_TIME`         AS `Check_time`,
                    `TABLE_COLLATION`    AS `Collation`,
                    `CHECKSUM`           AS `Checksum`,
                    `CREATE_OPTIONS`     AS `Create_options`,
                    `TABLE_COMMENT`      AS `Comment`
               FROM `information_schema`.`TABLES`
              WHERE ' . (PMA_IS_WINDOWS ? '' : 'BINARY') . ' `TABLE_SCHEMA` IN (\'' . implode("', '", $this_databases) . '\')
                ' . $sql_where_table;

参考URL
http://nippondanji.blogspot.com/2009/02/innodb.html
http://www.joomler.net/blog/tag/8055-phpmyadmin.html

2010年12月1日水曜日

CSRF対策

CSRF(クロスサイトリクエストフォージェリ)

CSRF対策は、ワンタイムトークンを利用して対策を考えていたけど、
セッションIDを使えば、安全で簡単に対策できます。

参考URL
http://takagi-hiromitsu.jp/diary/20050427.html
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/301.html
http://www.ipa.go.jp/security/vuln/event/documents/20060228_3.pdf