PHP一覧

『独習 PHP』で勉強中

PHP 勉強中

『独習 PHP』で勉強中です(お前もか~、と言う人も多いのでは?)。

photo

独習PHP
山田 祥寛
翔泳社 2006-01-24
楽天ブックス: 独習PHP

PHPによるWebアプリケーションスーパーサンプル 活用編 MySQL入門以前 PHPによるWebアプリケーションスーパーサンプル 第2版 PHPサイバーテロの技法―攻撃と防御の実際 まるごとPHP!〈Vol.1〉

by G-Tools , 2008/01/30

きっかけは pha さん

きっかけは(もちろん)、この記事。

田口元の「ひとりで作るネットサービス」探訪:「圧縮新聞」「訃報ドットコム」始めて半年で数々のサービスを生み出す、自称"ニート"──phaさん – ITmedia Biz.ID

その後、id:pha さんの記事を読んで、(「うーん、さんぜんえん か……」)──す、すぐに『独習 PHP』を買いました。

全ての文系ブロガーはPHPをやるべき – phaのニート日記

続きを読む


『勝手にブログ評論』でアナタも瞬間評論家

これまでの あらすじ

勝手にブログ評論 2/2(クリックで Flickr へ)

昔々(10 分前)、あるところ(ココ)に「あじあもす」という青年(オレ)が、

「えーんえーん、ブログネタが無いよぅ」

と、たいそう困っておったそうな。

そこで、神々(ギークとかエラい人とかエロい人とか)が集う電子図書館(livedoor Reader)で、いつものように勉学(巡回)に励んでいた(j, j, j,…)ところ、たいへん面白い評論会(後述)に辿り着いたのじゃった……。

『勝手にブログ評論』

ということで、面白ウェブサービスの紹介です。

勝手にブログ評論

これ以上ないくらいシンプルな画面で、使い方も すぐわかると思います。

みなさんも、自分やお気に入りのブログ URL を入力してみましょう。

続きを読む


MTOS・MT4.1 の PHP テンプレート化で脆弱性を発見

MTOS・MT4.1 の不具合

2008-01-10T21:02:01+09:00 追記

「大人の事情」で記事を修正しました(詳しくは聞かないように!)。


2008-01-12T17:59:03+09:00 追記

MTOS version 4.1-en-release-27-r1206-20080112 で、下記の不具合が修正されていました。MT4.1x も、近日中に修正されるでしょう。

けっこう、クリティカルな不具合だったらしく、速攻で直していただけました。

(MT ユーザと six Apart の役に立てて うれしいゼ!)


2008-01-16T09:37:48+09:00 追記

Six Apart – Movable Type News: 【重要】 Movable Type 新バージョンとパッチの提供について

本件の不具合を修正したバージョン・パッチの提供が始まりました。なんと、MT3.21 から MT4 まで、幅広く関わる不具合だったようです。早急にアップデート・パッチの適用を行ったほうが良いですね。

「パッチ……?」 つ Windows環境で「ファイルにパッチ(patch)を当てる」 : 亜細亜ノ蛾

MTOS と MT4.1 で、不具合(脆弱性)を発見し(てしまい)ました。

  • 不具合を確認したバージョン
    • MT4.1b2-en
    • MTOS-4.1-ja-release-26-r1151-20080108
    • (未確認だが、他の MT4.1x も同じだと思う)
  • 具体的な症状
    • 「ある URL」にアクセスすると、テンプレートの内容が(処理されずに)HTMLで表
      示される
      場合がある
    • それによって、PHP のソースコードが第三者に見られる

すでに six Apart に報告済みなので、そのうち対処されるでしょう。

(とは言え、けっこう修正は面倒くさそうな所なんだよなぁ)

考えられる被害

環境によっては、致命的な不具合かと思います。

すべてのテンプレートを確認して、

PHP のソースコード内にパスワード情報が含まれていないか確認

したほうが良いと思います。

余談

いやー、とうとう自分もバグ報告デビューですよ。憎むべきバグも、見付けたときは、ちょっぴり うれしい。

今回の「ある URL」は、第三者から ものすごく簡単に見られるので、ちょっと技術があれば何万件もの PHP ソースコードが簡単に GET できる。その中から数件でも DB へのログインパスワードが見つかれば──ね。

なので、みなさんに周知したいし、でも悪意ある人には見られたくないし──と、ちょっと公開を考えました。しかし、今回の件にかかわらず、何らかのきっかけで PHP のソースコードは見られる可能性がある、というのを考えに入れたほうが良いのかも。と思って記事を書きました。

自分の場合、その「何らかのきっかけ」が起こるタイミングが今回わかったので、ラッキィでした。自分でスクリプトを書くときには気をつけよう。

そんなこんなで、また MT4.x への移行が遅れるのであった──。


「JavaScript ファイルの縮小(Minify)」が なぜ難しいか?

JavaScript を縮小・圧縮したい!

PHP の勉強も兼ねて、

「JavaScript ファイルを自動的に縮小(Minify)して、(gzip)圧縮する」

というスクリプトを作っています──と何度も書いて来ましたが、

結論: \(^o^)/ 無理

という、残念な結果に終わりそうです(8 割方 予想が付いていたけど)。

今回は、それがなぜ難しいのか という話と、/packer/ は やっぱり凄い! という話です。

目標

やりたいこと:

  • PHP4 で作る
  • 自動で処理する
  • JavaScript ファイルから
    • コメントを削除
    • 余分な空白・改行を削除

たったこれだけのことですが、じつは ものすごく難しいです。ちなみに、「PHP4」で、というのは、ただ単に ここのサーバで動いているのが PHP4 だから、というだけの理由です。PHP5 だと、類似のスクリプトはいくつかあるのですが……。

「そんなの、2 分でできるよ」というひと向けに、下記の(わざとらしい)"sample.js" をどうぞ。

/***/
/**
*  comment
*  // comment
*/
/*@cc_on
//  http://d.hatena.ne.jp/amachang/20071010/1192012056
var doc = document;          // comment
eval('var document = doc');  // comment
@*/
/*@cc_on document.write('"IE!"\n'); @*/     // comment
var hoge = "/* hoge */\n";
var fuga = '"/* fuga */"\n';
var foo  = "//* foo *//\n";
var bar  = '"\'//* bar *//\'"\n';
document.write(hoge + fuga + foo + bar);

上記のコードを Minify すると、こうなるはずです。──そんなスクリプト、書けますか?

/*@cc_on var doc=document;eval('var document = doc');@*//*@cc_on document.write('"IE!"\n');@*/var hoge="/* hoge */\n";var fuga='"/* fuga */"\n';var foo="//* foo *//\n";var bar='"\'//* bar *//\'"\n';document.write(hoge+fuga+foo+bar);

続きを読む


『はじめてのPHP言語プログラミング入門』 生ぬるい解説書に非ず

『はじめてのPHP言語プログラミング入門』

PHPサイバーテロの技法―攻撃と防御の実際の中で「お勧めする入門書」として書かれていた、『はじめての PHP 言語プログラミング入門』を読み終わりました(後半、意識がうつらうつらしつつ)。

──まず、自分がこの本をレビューするのには 100 万光年早い(ツッコミ所)ことをお断りしておきます。

photo

はじめてのPHP言語プログラミング入門
大垣 靖男
技術評論社 2005-04

まるごとPHP!〈Vol.1〉 PHPサイバーテロの技法―攻撃と防御の実際 PHP辞典 Smarty入門~PHP5+テンプレート・エンジンでつくるMVCアプリケーション~ PHPフリーソフト&スクリプト集1000―無料でスグに使える!

by G-Tools , 2007/01/31

──というくらい、自分にはまだ、この本の真価は理解できない……!

本書は、他の「入門書」を熟読して、簡単な掲示板プログラムなどを動かせるようになった後──くらいでもまだまだ早いかも知れません。

すでに PHP に慣れた人が、復習のために読む──くらいがちょうどいいかも。

続きを読む


MT3.34 でダイナミック・パブリッシング周りに不具合

MT3.34 の不具合

今回の記事は(も?──いやいや)自分では試してませんよー、伝え聞きですよー、というのを念押しつつ──。

なかなかこのブログでは移行に踏み切れませんが、MT3.34 がリリースされています。

ref.: Six Apart – Movable Type News: Movable Type 3.34日本語版の提供を開始

しかし──ダイナミック・パブリッシング周りにいくつか問題が残っているようです。

今のところ、見つかっている不具合(の中で自分が識っているもの)は簡単に修正可能です。動的生成を使っている人、これから試してみたい人は、是非とも確認ください。

続きを読む


ディレクトリ配下のファイルすべてに PHP スクリプトを適用する方法

『PHP サイバーテロの技法──』より

PHPサイバーテロの技法―攻撃と防御の実際から、まだまだネタを引っ張ります。この本からはネタがいくらでも引き出せます。良書ですね。

ただ、あまりセキュリティ関連の情報を引用すると、この本の購読者が減るかも知れないので、抑えておきます。Web アプリケーションのセキュリティに関心がある人は PEAK XOOPS Support&Experiment – XOOPS site for my test and support を熟読しましょう。

ということで、今回は軽いネタ。

「.htaccess に一行書くだけで、ディレクトリ配下の PHP ファイルすべてに同じ PHP スクリプトを適用できる」

続きを読む


XOOPS v2 のアップグレード方法と「Xoops Protector」

このサイトの「ホームページ」

『PHPサイバーテロの技法──』 まずは攻撃方法を学ぶ : 亜細亜ノ蛾 で紹介した本を読んで、セキュリティの勉強中です。よくよく考えたら、このサイト上には放置してある Web アプリケーションが結構あります。MT の事ばかり情報を集めてきましたが、放置してある Web アプリケーションに脆弱性があった場合、いくらでも悪意のある攻撃を受ける可能性があります。──いままで目立った被害がないのは、単なる幸運と考えた方がいいですね。というか、現在進行形で情報を抜き取られている可能性も……。

ということで、このサイトの顔であるトップページからセキュリティ対策を施すことにしました。誰も(スパマ以外は)知らないと思いますが、このサイトの「ホームページ(入り口)」は XOOPS v2 で作られています。──まぁ、現在(数年前から)リニューアル中でたいした物は置いてませんが。


亜細亜ノ蛾 - Go for the gold!!亜細亜ノ蛾 – Go for the gold!!

今日までトップページは XOOPS 2.0.7 で構築していました。──これって結構古いのかな、と XOOPS の日本公式サイトを見てみました。


XOOPS Cube日本サイト - Simple, Secure, ScalableXOOPS Cube日本サイト – Simple, Secure, Scalable

──ん? いつの間にか、XOOPS v2.x 系は「XOOPS Cube」という名称になっている? と思って XOOPS Cube日本サイト – ダウンロードを見てみると、

  • XOOPS v2.0.x 系 : XOOPS v2
  • XOOPS v2.1.x 系 : XOOPS Cube

という名称のようです。XOOPS v2 の最新バージョンは「XOOPS 2.0.16a JP」とのこと。──「XOOPS 2.0.7 < XOOPS 2.0.16a JP」なのが微妙に違和感がありますが、「7 < 16」ということですね。かなり古いバージョンで放置していたことが判りました。さっそく対策として、XOOPS をバージョンアップすることにしました。

──まさかこんなに苦労するとは思いもよらず……。

続きを読む


『PHPサイバーテロの技法──』 まずは攻撃方法を学ぶ

攻撃は最大の防御なり!

突然何かを受信して、『PHP サイバーテロの技法──』を読み始めました。これがまた、面白い!

photo

PHPサイバーテロの技法―攻撃と防御の実際
GIJOE
ソシム 2005-11

PEAR入門 PHP標準ライブラリを極める! 超・極める! PHP Smarty入門~PHP5+テンプレート・エンジンでつくるMVCアプリケーション~ まるごとPHP!〈Vol.1〉 PHPによるWebアプリケーションスーパーサンプル 活用編

by G-Tools , 2007/01/12

この本で特に面白いのは、「実際に攻撃してみましょう」というスタンスなのが楽しい。──と言っても、どこかの掲示板に悪意を持ったスクリプトを仕掛ける、というわけではなく、サンプルをダウンロードしてローカル環境で試すわけです。──もちろん、そこで得た知識で悪戯をしたくなるのも人情ですが──。

ぼくはまちちゃん! の「善意の悪戯」の数々を見て、どうやって脆弱性を見つけるのかな? と興味を持った方(それ何てオレ?)にお勧めしたいです。

続きを読む


MT 標準の動的生成は「改行設定」がポイント

【常識】MT の動的生成は Smarty を使ってる【今更】 : 亜細亜ノ蛾 に引き続き、PHP 版のダイナミックパブリッシング(動的生成)について。

動的生成に移行する場合に障害となるのは、やはりプラグインを使っている場合です。PHP に対応したプラグインを使っているの場合は、テンプレートの変更なしでもそのまま移行できます。mt_dir/php/plugins をざっくり見て、使っているプラグインの名前があれば、大丈夫でしょう(それでいいのか)。もし、PHP 非対応だった場合はテンプレートの書き直しが必要です。

──だがしかし。ちょっと落とし穴なのが、「改行設定」──いわゆるテキストフォーマットを変更するプラグインを使って記事を書いていた場合。このせいで自分は PHP 版の動的生成に移行できなかった、のをいま思い出しました。

いくつか抜け道があるので紹介します。

続きを読む