カテゴリー: PHP

OWASP Japan Chapter Meetingに参加したかった

投稿者:isc_blog

OWASPとは・・・
正式名称は「The Open Web Application Security Project」で
信頼できるアプリケーションの開発・購入・運用の推進を目的として
設立されたオープンなコミュニティです。

OWASP Japan
https://www.owasp.org/index.php/Japan

今回(6/27)で2回目のJapan Chapter Meetingとなります。
Chapter MeetingはWebセキュリティに関心がある方なら、人種、国籍、
性別、年齢に関係なく参加できるカジュアルな勉強会です。
(今回は約200名が参加したようです)

以下、今回の内容と公演資料です。 (さらに…)

2012年6月28日

CodeIgniter2.x 系のバッチとして呼び出し について訂正

投稿者:isc_blog

先日、CodeIgniterをバッチとして呼び出せるようにしたいという記事の中で cron.php を使って・・・という説明を展開したのですが、CodeIgniter2.X系ではもっと簡単な方法があることがわかりましたので訂正させてください。

CodeIgniter 日本語版のユーザガイド(ここではver.2.0.3)の記事がありました。
↓↓

CLI からの実行 : CodeIgniter ユーザガイド 日本語版.

こちらの説明を引用させてください。
[php]
<?php
class Tools extends CI_Controller {

public function message($to = ‘World’)
{
echo "Hello {$to}!".PHP_EOL;
}
}
?>
[/php]
このようなコードをtools.php というファイル名で
application/controllers に保存します。

ブラウザからは
http://example.com/index.php/tools/message
というURLで呼び出せます。

結果は
「Hello World!」と表示されます。

これをターミナル(コマンドプロンプト)から呼び出す方法が下記の通りです。

[java]
$ cd /path/to/project
$ php index.php tools message
[/java]
これで
[java]
$ Hello World!
[/java]
と表示されます。

[java]
$ php index.php tools message "John Smith"
[/java]
URL の引数と同じように引数を渡すことができます。”John Smith” を引数として渡すことで、次のように表示されます。
[java]
$ Hello John Smith!.
[/java]

・・・これだけでした。
前回の記事は全部訂正です。
すみません。

2012年1月19日

PHP var_dump の出力をログファイルに・・・

投稿者:isc_blog

タイトルの日本語おかしいかな・・・
検索に引っかかる用ですのでお気になさらず。

単純な例(ポストされたリクエストを確認)

[php]


// ロガーとか作ってあると仮定します。

// CodeIgniterでのログ出力
log_message(‘debug’, var_export($_POST,true));

// Log4php でのログ出力
$logger->debug(var_export($_POST,true));
[/php]

これでOKです。
var_dump で出力される文字列部分だけなら
var_export で取得できるってことですね。

参考
PHP: var_export – Manual

2011年11月29日

CodeIgniterでの開発時に有用なデバッグ情報出力と実装方法

投稿者:isc_blog

CodeIgniterには開発中に便利なデバッグ機能として
出力クラスに「アプリケーションのプロファイリング」結果を出力する機能があります。

やり方はcontrollerクラス内に下記の一文を追記するだけ。

$this->output->enable_profiler(TRUE);

参考:アプリケーションのプロファイリング|
CodeIgniter ユーザガイド 日本語版 Version 2.0.3

上記参考ページ内に「プロファイラセクションの有効化と無効化」みたいな説明もあってなかなか優れものだということがわかります。

ただ、これってアプリケーション開発してる時にはコード内に記述しちゃって納品時(正式運用時)に消して出すとかコード内に残っちゃってるのがちょっと気になるといえば気になるところ・・・

で、解決方法例が載っている記事がありました↓↓
CodeIgniterの学習 16 – 開発時にプロファイラを有効にし情報を表示する – ヌル日記

こちらの記事内容通りにやればすんなりconfig.phpにて管理出来るようになります。
バージョン的には同記事の日付が2008年なことを考えるとCodeIgniter1.6か7から2.1までそのまま大丈夫そうです。
(私の環境は2.0.3)

例:こんな感じに出力されて便利です!

CodeIgniter_enable_profiler

CodeIgniterで$this->output->enable_profiler(TRUE)にしたところ

2011年11月3日

CodeIgniterをバッチとして呼び出せるようにしたい

投稿者:isc_blog

こちらの記事は CodeIgniter2.x系よりも前のことになるようです。
CodeIgniter2.x系をご利用の方は
こちらの記事をご覧ください。
CodeIgniter2.x 系のバッチとして呼び出し について訂正

(さらに…)

2011年10月4日

体系的に学ぶ 安全なWebアプリケーションの作り方

投稿者:isc_blog


体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

Webアプリケーション開発者は必読の名著なので、いまさらですよね。
内容に関して紹介しているブログは山のようにあるので割愛いたしますw
私がこの本をお勧めする理由は、
・わかりにくい脆弱性も原理を細かく説明している
・VMが付録で付いてくるので実際に動かして確認できる
です。

欠点としては重量感たっぷり約1kgということですね。
しかし、待望の電子書籍版が本日発売されます。
しかも10月17日まではキャンペーン価格の\1,800と非常にお得!!(リアル書籍は\3,200)
リアル書籍版を持っていますが、会社用(&検索用)に購入予定です。

著者のブログTwitterも非常に勉強になります。

2011年9月28日

PHPの閉じタグは閉じるな!の教え

投稿者:isc_blog

PHPの閉じタグは閉じなくて良いじゃなくて、閉じてはいけない!

そうなんですよ・・・
PHP始めた頃は、閉じタグきっちり書いてました。
(始めた頃どころか、最近も注意しないと思わず閉じちゃいます。)

しかし、閉じなくていいんですよ。

じゃなくて、閉じても「100害あって一利なし」です。

実際、CodeIgniterのソースには一切閉じタグがありません。
が、しっかり挙動しています。

私自身は昔、こんなトラップにハマって以来、閉じるのが怖くなりました。

システムでMySQLに画像データをBLOB型で突っ込んで表示するPHPを作っていた時のこと。
画像が全く表示されない・・・
かなり時間かけて調べましたが、コード上変な記述は見当たらない(目視レベルでは・・・)
で、トラフィックをとってみたんです。
すると、画像のバイナリーデータの前に改行コードが・・・・

結局、画像データを取得して表示する・・・前のPHPファイルに「?>」閉じタグのあと改行が・・・・混在していました。

それを拾ってしまったがために画像表示されなかったんですね。

改行を取ったらすんなり表示・・・

閉じタグがなければこんなことは起こりません。

閉じないようにしましょー!

2011年9月25日

CIUnit導入~

投稿者:isc_blog

CodeIgniterで開発中にPHPUnitでテストしてみようと思ったら
CIUnitっていうツールがあってそれでテストする・・・っていう感じらしいので

先日PHPUnitを入れた前提で検索してみたところ
CIUnitをインストールする方法が書いてあった記事がありました。

CodeIgniter2.0.3にPHPUnit/CIUnit をインストールする| A Day in Serenity @ kenji

この記事のとおりCIUnit自体は現在CodeIgniter1.7で止まっているので2.0以上用に改造してあるのですごく助かりました!

2011年9月23日