「PHP徹底構築」を頂きました »

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

モデレーション待ちのフィードバック

この投稿にはモデレーション待ちのフィードバックが 1 件あります....

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki本を書いていた頃からしばらくはPHPセッションはstrictになっている、と信じていました(汗

適用されていないと気が付いたとき、PHP 4.4のサポートが終了するとき、そして先日と3度目の提案ですが、今回も無理そうですね。ここで紹介した対策はあまりこの紹介したくない対策なのですが、今回もダメそうなので紹介しました。

しつこい、またアホな提案している、と思われてもシンプルで確実な方が正しい、と考えているのでまた提案します。

セッション管理について調べた方、是非結果を教えてください!

P.S. コメント機能に問題があるようなので、直るまではメールやツイッターで教えてください。
2011/11/06 @ 01:55
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiこの問題に少し進展がありました。wiki.php.netにRFCを書くことになったので解決へ向けて動くかもしれません。
2011/11/08 @ 01:44

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki徳丸さんにタイポを教えていただいたので修正しました。

ISO-8895-1 -> ISO-8859-1

ありがとうございました。

ところでコメント機能がおかしいようです。これも徳丸さんに教えてもらいました。近日中に直したいのですが、しばらく時間が必要です。。。早めに直します。ご意見・フィードバックはメールかツイッターでも大歓迎です。
2011/11/06 @ 03:07

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: させざき [訪問者]
させざきinternal@あてに送ったメールは
http://news.php.net/php.internals
または
http://marc.info/?l=php-internals
アーカイブにされると思うのですが、大垣さんの投稿、11月のログに見当たらないです。。私の確認まちがいでしょうか?
2011/11/02 @ 11:23
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiメールボックスを確認しました。宛先がタイポで送れていませんでした。ご連絡ありがとうございます。これから再送します。
2011/11/04 @ 06:24

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: 山本和久 [訪問者] メール
山本和久こんにちわ。
気になる記事だったので試してみました。
git version 1.7.3.2です。
手元のmacでエラーは再現しませんでした。試しに、別ディレクトリでgit cloneしてみても問題ないみたいです。
1.7.3.3固有の問題?

2011/04/21 @ 02:08

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: wtnabe [訪問者]
wtnabeOSXでもTerminal.appでもなくPAGERのオプションの問題ですね。GIT_PAGER=''にすればPAGERに渡らずそのままカラー表示できますので。対処方法も現象の把握も正しいんですけどタイトルだけ見ると全然違う点を問題視しているように読めてしまうので、可能なら修正してもらえると誤解する人が出なくて嬉しいです。
2010/09/23 @ 10:48
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki確かに誤解する人もでそうすね。変えてみました。
2010/09/29 @ 17:52
コメント from: wtnabe [訪問者]
wtnabeありがとうございます^^
2010/09/30 @ 14:54

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: dai_yamashita [訪問者]
dai_yamashitaカンファレンスに参加できなかったので、資料のアップを心待ちにしているのですが、アップはまだされないでしょうか?
是非拝見したいので、アップをお願い致します。
2009/12/16 @ 00:25
コメント from: Jem Santos [訪問者]
***--
Jem SantosHello
2010/01/23 @ 00:21

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: haraoka [訪問者] メール
haraokaglibc使ったら負け的な発想もあるかと想いますが、最初OpenBSDに送られてないのはOpenBSDからはGNUは一切排除でglibcなんてかんけーねーよってなってるからかしら?
2009/09/20 @ 10:53
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiOpenBSDには言及してありませんね。もともと脆弱性がないlibcだったのかも知れません。

他のBSDで見つけちゃったらglibcにも"同じような"脆弱性があった、と言う話のようです。"同じ"ではなく"同じような"脆弱性という事がミソですね。BSD用のアドバイザリは見ていませんが、このアドバイザリからするとそのようです。

しかし、NetBSDしか直ってない(FreeBSD, OSXは脆弱)、Linuxも最新glibcが必要、とはセキュリティに興味がある人には美味しい(?!)ネタかと思います。
2009/09/20 @ 11:00

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki「でも、それじゃどこまでやれば良いんだ?」

と思う方も居ると思います。それは次のエントリ
に書くことにします。難しい問題です。
2009/09/17 @ 09:12
コメント from: hoge [訪問者]
*****
hoge面白いエントリーありがとうございました。
最初のDjangoの例ですが、
限定された(ホワイトリストの)IPからの接続しか許可しない場合、
以下のような方法が思いつきます。
1)ルーターで、接続を制限
2)OSで接続を制限(iptables)等
3)apacheで接続を制限
4)Djangoで接続を制限
位だと思いますが、

>>セキュリティ対策を行うべき部分 - 自分が作っている部分

と言う場合、小さい会社だと、全部自分で、管理することが多いのですが、1-4まで、全部、制限すると言う感じでしょうか?

自分がやる場合は、最も、下のベースでやるのが良いのかなって思っていて、1)ルーターで制限すると言う手を使いがちです。
ルーターの管理権限が無い場合は、2)のOSでやるってことを考えます。

1-4で、ホワイトリストのIPに制限する場合、どこで、制限しますか?
2009/09/18 @ 00:08
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiWebサイト全体がIPで制限されても構わない場合はルータ、OSでの制限も可能です。サイト全体がクローズドなあらこの方法で大丈夫です。全部に適用している訳ではないですが、ルータ(Firewall)とOSの両方で制限できるようにしています。

特定のURLだけ制限したい場合はApacheで制限しています。よく行っている追加の対策は認証が必要な管理ページへのアクセスはIPアドレスを利用してApacheレベルで制限しています。

DjangoでIPアドレスで制限したい場合もあると思います。その場合、私なら「アップグレード」か「パッチ」するのどちらかにすると思います。どのようなパッチが必要か分かりませんが、X-FORWARED-FORでREMOTE_ADDRを上書きしないようにするだけなので、恐らく1行パッチで動作を修正できると思います。
2009/09/18 @ 09:03

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

5 コメント

コメント from: 通りすがり [訪問者]
通りすがり徳丸さんの記事は、入力後の内部で起こった不正な文字列の話であるのに、「PHPで」に注目するあまり誤読している。
PHPやDBのセキュリティについてはその通りりであるし、徳丸さんの書き方(お互いの論点のずれ)にも問題はあるが、今回のあなたの誤読はもっと問題。
IPAの記事に関しては、あのゴミに値する内容をまともに受け取る馬鹿はいないだろう。
真面目に批判せず無視でOK。
2009/09/16 @ 02:54
コメント from: 木下亮介 [訪問者]
*----
木下亮介「職務放棄の文書だと言っても良い」
よいわけないでしょう。
都合が悪くなると「名誉毀損で訴訟をおこすぞ」
などとコメディアンのようなことを言い出す方が
このようななんの根拠もない誹謗をなさるというのはとても奇妙なことですね。
いかなる角度から見ても「職務放棄」ではない
事柄にたいして「職務放棄」だなどと言いがかりを仰るのはどうしたわけでしょうか
2009/09/16 @ 07:56
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiいつ名誉毀損で訴えるなんていいました??いい加減な事を書いているのはどちらか、普通の読者なら判断できますよ。

誹謗・中傷を好む方ほどそういう事を言いだす傾向にあるように思えます。

IPAの業務に特定のプロダクトを使わないように勧めることが含まれている、とするのは面白い見解ですが理由も無しでは説得力も無し。


最近、またスパムも復活してきたしモデレートを復活させないとかな。

参考までにIPAの事業方針


ソフトウェアは私たちの生活に広く普及し、便利で豊かな社会を実現しています。より信頼性の高いソフトウェアを効率よく開発できるようにするため、IPAは社会に大きな影響のある領域に集中して、ソフトウェア開発の改善に取り組んでいます。

相互運用性を確保するためのオープンな標準や、特定ベンダーの独占でなく、みんなで共同して作り上げるオープンソースソフトウェアは、コスト面だけでなく、さまざまな利点を持っています。IPAはオープンソフトウェアの利用促進に向けて、さまざまな活動をおこなっています。

http://www.ipa.go.jp/about/ipajoho/hosin.html

IPAの中の人だとしたらミッションくらいは読みましょうね。


IBMやMicrosoftはPHPをサポートしていますけど彼らの営業妨害になるのでは?とか考えられないのでしょうかね?普通の法人と違うシマンテックやマカフィーとかと違う独立行政法人なのに意識が低すぎるとは思わないのですかね? IPAの情報には良いものも多いのですが、中には首をかしげる物も沢山あります。上記のようなコメントを書く方が中の人だからかな?先ほどの方はもしかして例の文書の著者ですか?
2009/09/16 @ 08:11
コメント from: 名誉毀損の件 [訪問者]
名誉毀損の件「名誉毀損」の件はこれでしょうね。

http://slashdot.jp/comments.pl?sid=309361&cid=914004
http://blog.ohgaki.net/a_ma_sa_sa_a_ia_ca_sa_rhtmleosa_ia_a_iea#comments
2009/09/16 @ 19:17
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiなるほど!ありがとうございます。
たしかこれは言いがかりでしたよね。それで注意したような気が。

あまり気にしていないのですっかり忘れていましたが、ひどいコメントがあったような気がします。匿名掲示板にあるような感違いコメントがあったのであのように書き、「削除したら」と助言もいただいたから問題のコメントは削除したような気がします。同じ方からの投稿なのかな?

自分の責任範囲のセキュリティ上の問題ではないと主張したくなる気持ちなどは十分理解できるのですが、八つ当たりされても困ります。
2009/09/17 @ 05:31

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: のりぞー [訪問者]
***--
のりぞーこの度は、うちのスタッフが参加させて頂きます。
当日、よろしくお願い申し上げます。
2009/09/11 @ 21:53

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: kenjimori [訪問者]
kenjimoriおつかれさまでした。次回こそ参加します。
2009/09/08 @ 10:41

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: smbd [訪問者]
smbd> emacs派なのに何故vim使ってるの?と疑問に思った方へ。コンソールからemacsと叩くとGUIのemacsが立ち上がるのが面倒なだけです。
.bashrcとかで環境変数DISPLAYがセットされていなかったらalias emacs="emacs -nw"とかすればいいのでは?
2009/08/28 @ 18:13
コメント from: m0r1 [訪問者]
m0r1>>コンソールからemacsと叩くとGUIのemacsが立ち上がるのが面倒なだけです。
私は、「emacs -nw」でGUIで開かずに使用しています。
ついでに、「alias emacs="emacs -nw"」と設定してます。
2009/08/28 @ 18:19
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki再びviも使うようになったきっかけはemacsが無い環境で結構な数のファイルを編集しなければならなくなった事です。それ以来、ターミナル=viで編集という習慣でした。確かにno windowオプションを使えばターミナルで開きますよね。

昔はX版が重く感じたころまで使ってましたがすっかり忘れてました。ありがとうございます。
2009/08/28 @ 22:02

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: とほほる [訪問者]
とほほるおぉ、なんかよくわかりませんが、賞状かっこいいすね。おめでとうございます。
2009/05/13 @ 01:21
コメント from: かちうしゃ [訪問者]
かちうしゃ昔旦那が参加したときデブ好きの私は期待に胸を躍らせたのですが・・・デブのサミットじゃないんですよね!えらくガッカリした記憶があります。
何はともあれおめでとうございます。
2009/05/17 @ 00:46

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: 48 [訪問者]
48当日よろしく御願いします。
会場係
2009/05/12 @ 09:01
コメント from: まいパパ [訪問者]
まいパパ当日よろしくお願いします。

大分前にメール送りましたけど、名前のところの訂正と話す内容を案内に付け加えておいていただけると助かります。
2009/05/12 @ 09:16

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki竹島問題では44名の死傷者、4000名以上の日本人が不当に抑留され人質として外交に利用されました。このような事が繰り返されない為にも、日本と日本国民は毅然とした態度で不当な圧力や侵略に対抗することを明確にしなければなりません。なにもしなければ奪われ、侵略され続けられるだけです。


わたしのおうちはどこですか?(1.1)領土問題を分かりやすく解説したJCI(日本青年会議所)の啓蒙ビデオです。こちらも参考になります。
2009/02/23 @ 00:18

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiちなみにこの情報はZend Framework 1.7の情報です。後に検索エンジンで来た方の為に書いておきます。
2009/01/30 @ 19:52

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: 徳丸浩 [訪問者]
徳丸浩お世話になります。
>IMPはsession_regenerate_idを呼び出しています。この為、SquirrelMail/RoundCubeと比べるより安全です。しかし、対策は十分ではありませんでした。
どのような点で十分でないのでしょうか?
2009/01/29 @ 13:18
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki徳丸さん、どうもです。

親ドメインのクッキーが優先されるブラウザがあるので、親ドメインのクッキーを削除しないと、セッションアダプション脆弱性のお陰で、セッション固定化攻撃が可能にになります。


パッチ済みのPHPなら攻撃用のセッションIDでセッションが初期化できず、ログインできないので攻撃されません。


2009/01/29 @ 14:38

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

モデレーション待ちのフィードバック

この投稿にはモデレーション待ちのフィードバックが 1 件あります....

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで、このサービスですが対応していない脆弱性もあります。PHPのsafe_modeはセキュリティを維持する為の仕組みではないので、safe_modeに関連するセキュリティ脆弱性には対応していません。この問題には対応していませんが、safe_modeはフェイルセーフ機能であるため重大な問題となるケースは少ないでしょう。

PHPの大幅な仕様変更が必要な修正にも対応していません。PHP言語エンジンであるZendエンジンがリソースの参照数を管理していない為に解放済みのポインタにアクセスできてしまう脆弱性、に対応していません。こちらも、攻略用のスクリプトを実行しないとならないので、簡単に第三者が攻撃できる脆弱性ではありません。

セキュリティ上の問題でも修正できない問題にも対応していません。こちらは、Wikiの「PHP/脆弱性リスト/メモ」のページをご覧下さい。このページにはソース配布版のデフォルト設定でセキュリティ上問題となるphp.ini設定なども含めています。ディストリビューションによってphp.ini設定は異なるので全てのPHP環境に当てはまる問題ではありませんが、チェックする方が良いです。

2009/01/21 @ 18:50

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki編集者の方からのメールに気がつかなくて修正が遅れています。16日メールをもらっているのに、さっき見ました(汗

後で気が付いたのですが、サンプル自体が変です。HTMLの場合、本文でもエスケープ文字が"¥"の言語の場合、と書いているのにHTMLのエスケープ文字は違うので。どうして、そんな変な思い違いをしていたのか調べてみると、昔PHPコードを生成した場合にPHPとHTMLが混ざったコードでサンプルを書いました。記憶が曖昧になっておかしな事を書いていました。
# 人間の記憶はいい加減なので簡単なサンプルでも
# ちゃんとチェックしないとならないですね。

意味で読んでしまっていると、先入観の為に間違いに気がつきにくいです。プログラムを実行してみてはじめて分かるバグのようなものですが、文章だとプログラムほど寛容に扱ってもらえないのが困る所です。

2009/01/21 @ 03:49

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Moriyoshi Koizumi [訪問者]
Moriyoshi Koizumiたまたま通りがかったので。
上の記事は、若干誤解を招くような気がします。
前にも説明した気がするのですが、入力文字エンコーディングをクエリ文字列で指定するようなアプリケーションがあった場合にはいずれにしても脆弱になります。

<?php
echo htmlspecialchars(mb_convert_encoding($_REQUEST['input'], 'UTF_8', $_REQUEST['in_enc']), ENT_QUOTES);
?>


2009/04/27 @ 11:00

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: sharl [訪問者]
sharlバンドルされているGDライブラリを使っている場合のみ、再現しますね。適切に対処されている外部GDライブラリならば、問題なしです。
CVSにパッチはありました。
2009/01/05 @ 15:55
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki実はバンドルされているライブラリは放置されている事が多いです。gdだけでなく、libmysqlもかなり長い間放置されていました。

GD自体のメンテナンス状態もかなり怪しいのですが、ディストリビューションは独自のセキュリティパッチでGDに当てている事がほとんどです。なので

./configure --with-gd=/usr --with-jpeg-dir=/usr --with-zlib-dir=/usr

といった感じでシステムのGDライブラリを使っていれば大丈夫な事も多いです。
2009/01/05 @ 21:39
コメント from: naozou [訪問者]
***--
naozousuhosinを使ってもダメですか?

2009/01/06 @ 22:41
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>suhosinを使ってもダメですか?

確かめていませんが、この問題は本来GDの問題なのでshuhosinでは対応できないと思います。
2009/01/07 @ 08:29

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiちなみに、PHP 4.4.9ではマルチバイト文字自体のチェックが欠落しています。

今年は、できるだけセキュリティ関連のエントリを書こう、と思っていますが、どうなるかは分かりません。
2009/01/03 @ 11:50
コメント from: moriyoshi [訪問者]
*****
moriyoshiよくある間違いとして、環境変数LANGやLC_CTYPEを設定したのにsetlocale()をスクリプトの最初に呼び出していないために、それらが実行環境に反映されないというものがあります。

環境変数の内容をスクリプトの実行環境に反映するには、

setlocale(LC_ALL, "");

をスクリプトの最初に実行しなければなりません。

この動作に関してはいつのまにかマニュアルに記載されていますね。
2009/01/04 @ 05:26

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: haroaka [訪問者]
haroakaFedoraの32bit/64bit環境ってインチキ臭い。
2009/01/13 @ 00:32
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiとりあえず使う「かもしれない」32bitライブラリは全部入れておこう!って感じですね。
2009/01/17 @ 19:52

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: shibata [訪問者]
shibataまさに「自虐史観」「戦後骨抜き教育」の成功の賜物だと思います。

とりあえず、日米安保解消でもして自立した国家にでもならないと意識改革は難しそうです。現状、本当にアメリカの51番目の州ですからね。
またマスメディアがその国の国民レベルを表してると思います。マスメディアが誘導してるとも言えますが。

もし日本が完全に平和国家で、軍隊廃止でもしたらどうなるだろう。南米のある国は完全に軍隊をなくしたらしいが、正直魅力もない国に攻める国はない。その魅力が日本にあるか。あると言えばあるし、ないと言えばないかもしれない。
一番典型的なのはやはり石油などの資源の豊かな国は狙われやすい。日本は、資源はないが技術はある。でも、技術を盗むのにわざわざ侵略しなくても、産業スパイでも潜り込ませた方が楽かもしれない。

それにしても、隣の県、隣の州とはケンカしないのに、どうして隣の国とはケンカするんだろう。国ってなんだろう、と思ったり。なんかデメリットも多い気がしてならない。国という枠組みが、同時に敵を作っている、というような。
2008/11/26 @ 18:07
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki
戦時下であっても地方自治体が日本国政府の合意の無いままで勝手に宣言した場合、「敵国に対して軍事上の利益を与えようとし、もしくは与えた」とみなされて宣言した自治体首長が内乱罪や外患誘致罪、外患援助罪の容疑で告訴・処罰される可能性がある。

http://ja.wikipedia.org/wiki/%E7%84%A1%E9%98%B2%E5%82%99%E9%83%BD%E5%B8%82%E5%AE%A3%E8%A8%80 無防備都市宣言

と、違法である可能性が指摘されていますが、幾つかの自治体で可決され、多くの自治体で準備中のようです。ちなみに、外患誘致罪で有罪になれば罰則は死刑しかありません。


無防備地域宣言運動への反論 / 今村岳司(西宮市議会議員)

1. 条例を制定することが法的にできない。
2. もし条例を制定したとしても、その条例に基づいて無防備地域宣言をすることが、制度上できない。
3. もし無防備地域宣言をすることができても、現実的に地域住民の安全を守ることができない。

中略

最終的に審議をするのは議会です。日本の議会の良識が、狂信的な活動に必ず打ち克つということを信じてください。

http://xdl.jp/hantaitouron/

良識ある議会が多ければ良いのですが、既にかなりの自治体で条例が制定されています。
2008/11/28 @ 04:45
コメント from: haraoka [訪問者]
haraokaこれを紹介しているnokan2000って奴は実は内容がObsoluteだという事に気づいてない。
それと、こいつOS/Fontに依存する文字を使わない様にしろといっても云う事を聴かない。
書いている事に矛盾を指摘すると政治思想の問題にしようとする。
こっちは一般常識を書いているにも関わらず、技術がどうのこうのと云って言い逃れをする最低な奴だからなぁ。
人の管理には厳しく、自分には超甘過ぎだから人間的に大嫌い。
人としてどうかと思うぞ。
2008/11/30 @ 01:03

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

6 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki父の国籍が日本人の場合、無条件に日本国籍を認める最高裁判決により、今までになかった人口リスクが発生しています。

前のエントリ(国籍法 - 100年先の日本人は何人いるのか?5000万?1億?2億?)で書いているシナリオですが、国籍法の改正を待たずに既に可能となっています。それは、最高裁が「父親が日本人で真正な子であれば日本国籍を認めないと法の下の平等に反する」と判断したからです。前のエントリでも書きましたが、母親が日本人か外国人かで合理的な区別を許さなければ、海外で日本人が無限増殖といって良いようなペースで増える事を防止する事は、不可能なように思えます。

この最高裁の判決は、日本を壊した判決、として日本が消滅したあとにも歴史に残る判決になると思います。
2008/11/21 @ 15:03
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> また,認知と届出のみを要件とすると,生物学上の父ではない日本国民によって日本国籍の取得を目的とする仮装認知(偽装認知)がされるおそれがあるとして,これが準正要件を設ける理由の一つとされることがあるが,そのようなおそれがあるとしても,これを防止する要請と準正要件を設けることとの間に合理的関連性があるといい難いことは,多数意見の説示するとおりである。しかし,例えば,仮装認知を防止するために,父として子を認知しようとする者とその子との間に生物学上の父子関係が存することが科学的に証明されることを国籍取得の要件として付加することは,これも政策上の当否の点は別として,将来に向けての選択肢になり得ないものではないであろう。

違憲判決の一部です。わかり辛い文章ですが「婚姻要件を付ける事により、不正に国籍を取得する行為を制限できているとする意見に合理性はない。しかし、婚姻要件を無くすと不正が行われるかも知れないから、将来はDNA検査を考えても良いかもしれない。」これを書いた裁判官は近藤崇晴氏だそうです。

理解できない文章です。現在の嫡出子に限った国籍付与に「不正を防止する機能がく、合理性がない」「不正が行われると予想できる。でも、その対策は将来考えればよい」最高裁の裁判官が、不正防止機能を持つ法律に不正防止機能が無いと断じ、新たに不正を防止する機能は将来考えればよい、と犯罪を幇助するような判決文を書いてよいのでしょうか?

「違憲として判断した部分を取り払う事により、無くなってしまう犯罪防止機能は、立法府によって担保される事が妥当だ」くらいの事を書けないのでしょうか? 書けないなら、いっそ全く触れいない方がまだ良いです。最高裁が「犯罪防止機能を持つ法律の規定を無意味で無効」とし、わざわざ「犯罪防止機能は今すぐ作らなくても将来検討すればよい」などと判決文に書くのは妥当なのでしょうか? 法務省の官僚も改正法案にDNA鑑定が入っていない理由を支える論拠として使っていた部分でもあります。

少なからぬ一般の国民が嫡出子要件を取り除いた条文を見て「犯罪者に悪用される」と懸念しているのは事実ですし、このまま立法化されたら犯罪者に確実に悪用され、従来よりも多くの偽装日本人が誕生するでしょう。

国の根幹に関わる国籍法ですら、こんな状態です。
この国は政治も行政も司法も駄目になってしまったのかも知れません。
2008/11/22 @ 12:31
コメント from: hogehoge [訪問者]
hogehoge誤読では?読み下してみますね。

「〜これが準正要件を設ける理由の一つとされることがあるが,」
→準正要件によって偽装認知が防がれるとか言ってる人がいるが、

「合理的関連性があるといい難いことは,多数意見の説示するとおりである。」
→そんなの根拠無いよね。

ではでは。
2008/11/24 @ 20:06
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiありがとうございます。間違えてますね。この件、資料を読んでいるとどうも熱くなって駄目です(笑
(最初はコメントはこのまま残しておこうか、と思いましたが中途半端に読んで早合点されても困るので修正することにます)良いように読み間違えてます。さらに酷い... まさかここ迄とは思いませんでした。衆議院TVで見た官僚の答弁の意図が今正しく理解できました。

しかし、最高裁の裁判官は大丈夫なのか心配になりました。米国の様に、一人一人の判事が国民的議論の対象になり、選ばれていくようなシステムにしないと怖いですね。選挙の時の○、×も、白紙を○とみなす規定も変更し、無効としなければならないでしょう。今のシステムだと、"最高裁判事が殺人鬼"でそれでも判事を続けている、くらいの状況でないと罷免などありえないと思います。本当に"最高裁判事が殺人鬼"でも罷免できないかもしれない、と思えるくらいです。

立法はこの制度をできる限り早く修正すべきだと思います。
2008/11/25 @ 12:20
コメント from: utaka [訪問者]
utaka日本国憲法第14条
1. すべて国民は、法の下に平等であつて、人種、信条、性別、社会的身分又は門地により、
政治的、経済的又は社会的関係において、差別されない。

判決理由の疑問
法の下の平等に反する、なぜ国民はと書いてないのか
裁判中の時点では外国人として扱われるべきでは
2008/12/02 @ 18:06
コメント from: shibata [訪問者]
shibatahttp://www.yomiuri.co.jp/politics/news/20081203-OYT1T00673.htm?from=top

DNA確認じゃなく、いっしょに写ってる写真で確認って。もう笑うしかない。
2008/12/03 @ 23:28

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

11 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiいろいろ編集していたら数値がおかしくなっていました。申し訳ありません。今は直っています。

仕事柄、指数的に増加するケースには敏感です。ですから、国籍法の改正を知った時「有り得ない」と直ぐに感じました。極端な例ですが、日本と日本人の価値が急激に劣化する、そんなリスクもあります。人口や人口構成の急激な変化は国にとって大変重大な問題です。好ましくない急激な変化は、政治によりできるだけ制御すべきです。

このエントリで挙げた事例は、現行の国籍法でも行えます。日本よりヨーロッパの国々方が重婚を認めている国が近くにあるのでどのような対策を法的にとっているのか?また、対策とっていなくても大丈夫なのか?興味があります。

「最悪を想定し、最善を祈る」なら良いのですが「最善を想定し、最善だけを考える」、そんな国会議員や官僚では日本を守れません。日本が100年後に存在するのか、など15年ほど前には考えもしませんでした。しかし、今は、国籍法の以外の動きをみても、100年後の日本の存在は危うい、と思えてなりません。

世界中の国は、経済で競争するだけでなく、命がけの生存自体をかけて競争しています。日本人には「命を賭けた生存競争をしている」という意識が希薄すぎます。

今の子供たちの孫の代でも、最低限、今の日本と同じように暮らせるようにするのが、私たち大人の責任です。
2008/11/20 @ 03:54
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiここで紹介したいリスクは、重婚を認めている社会や国では、今の日本人(国会議員と官僚)があまり予想しない(少なくとも議論していない)人口リスクがある、ということです。仮に何とかして日本国籍を取得した男性100人がおり、これらの国で日本国籍売買ビジネスをはじめた場合、歯止めが効きません。

平沼赳夫議員が「歯止めのない法律」と発言されていますが、まさにその通りです。

100*100*100*100*100 = 100億人

100年で100億人、とまでならなくても、認知ビジネスが横行すれば、短期間に1億人くらいの日本人が生まれる可能性が無い、とは言えません。エントリで書いたように国まるごと日本人ばかり!という国が出来上がるかもしれません。婚姻要件がないのでDNA検査を行ったとしても、あまり意味がないです。次のエントリでは婚姻要件と関連して、違憲判決について考えてみます。

改正国籍法は「歯止めのない法律」と呼ぶのがぴったりの法律です。


日本の国内法で重国籍を認めるのはもっての外ですが、日本政府は他国の動向をよく調査し、重国籍を認める国を注意深く観察する義務があります。改悪国籍法に続き、重国籍を認めると本当に「国まるごと日本人」の国が世界中にできる可能性があります。

2008/11/20 @ 10:35
コメント from: しばた [訪問者]
しばた国会議員とはいえ実際何も考えてない人が多いですからね。
議案を一度も読まずに党の方針に沿って賛成票を投じる議員がどれほど多いことか。
そうすることが、業界で生き残れる一番の方法になってしまってるのが現在の政治なんだろうと思います。

個人的には、与党、野党、とわかれたら数の力で与党の言い分が通ってしまうのは当然なので、ほとんど民主的な政治はできないと思ってます。党という制度をやめて、すべての議員が自分で考えて行動すべき。
政治家という職業は、いかに国民の生活を豊かにするかではなく、いかに自分の権力を維持するか、という職業に成り下がってます。

オバマさんみたいな信念と行動力のある人希望です。(まだこれからお手並み拝見ではありますが)

この国籍法の問題も、おそらく実際に問題が起きてからあわてて改正するんでしょうね。
2008/11/20 @ 13:28
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiここに書いていることが、本当に現実にすぐに起きるか?と考えると必ずしもそうではないと思います。

しかし、国はもしもの時の為の対策をする義務があります。極論とも言える状態も考えなければならないのが国なのです。でなければ、9条で軍事力の所有を放棄している日本が自衛隊を持っている理由はありません。軍隊や自衛隊があるのは、国際紛争の最終手段である戦争が発生した場合に対処するためであり、最終手段である戦争を発生させない抑止力でもあります。国籍法は国家を構成する国民を定める法律であり、国家の根幹に関わる法律です。このような重要な法律は、極論と言えるような事態が発生しても、問題なく対処できる法律となっているべきです。

> この国籍法の問題も、おそらく実際に問題が起きてからあわてて改正するんでしょうね。

残念ながら、そうなる可能性が高いですね。その場合、すでに遅い可能性があります。分かっているだけでも偽装結婚が毎年何百件もあるようですが、どうするんでしょうね? 市役所に聞くと、認知自体は非常に簡単で、出生証明書さえ本物らしければ認知できるようです。
2008/11/20 @ 15:39
コメント from: haraoka [訪問者]
haraoka多重国籍容認派、むしろ推進派かもしれませんが、いくつか書きます。

中国の様な多重国籍完全排他の法律だと在外日本人は確実に減ります。
そうなると非常によろしくないと思ってます。

また、現状でも1984年12月31日以前に多重国籍の人はそのまま多重国籍が認められています。
(国籍選択の義務が無い)
これは元ペルー大統領 フジモリ氏やプロ野球選手のマイケル中村とかがそれにあたります。

また、成人後に婚姻等で強制的に得られた国籍もそのままに出来ます。
後、最近ではオーストラリア国籍が永久もの(離脱不可能)になったので、オーストラリア生まれの人は国籍選択を日本にしても、そのままオーストラリア国籍も維持した重国籍になってしまいます。

私は多重国籍容認にした方が他国の国籍法との兼ね合いとの考え方が容易になり分かり易い物になって運用がし易くなると考えています。
私には現状の国籍法でも重国籍の部分はかなり複雑に見えますよ。

ちなみに、アメリカは最近重国籍に排他的になりつつあるけど、市民権だけでも十分だから市民権を維持すればUS国籍放棄しても平気ですけどね。
2008/11/20 @ 23:02
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki私は、重国籍には自体に大きな問題があるので、重国籍には反対です。

もっと若い頃はグローバリストとかリベラルと呼ばれる人達に近い考えを持っていましたが、留学してから考えが変わりました。自民党の牧野衆議院議員も世界の国を見て、日本の良い所、伝統や文化を守っていかなければならない、と考えるようになりました。若い頃に重国籍の事について意見を聞かれたら、今と違ったと思います。

国籍が離脱できない、などの問題やフジモリ氏が参議院に立候補で「え?」と思ったので、昔は重国籍が認められていたは、その時しりました。

重国籍には安全保障、選挙制度、日本の統治など国家の根幹に関わる問題があります。日本は、スパイ防止法や他の国々が定めている安全保障策やセーフガードが無い状態であり、まだ議論する以前の状態です。重国籍の議論などはこれらの、最低限必要な法制度を作ってから議論しなければならない、と考えています。





2008/11/21 @ 14:36
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで、一つ非常に重要な事に気がつきました。

このエントリを書いた後に、違憲判決について判決は間違である、との考えを書きました。このエントリを書いている時は、現行法では、ここで書いたような「複数の女性に大量に日本人を生ませる行為はできない」と思っていました。

しかし、ここに書いている「複数の女性に大量に日本人を生ませる行為」は違憲判決による法解釈の変更により、すでに合法となっている、と考えられます。

これを防ぐ立法は可能なのか? いまの所は思いつきません。最高裁の判事15人に見解を聞けるものなら聞いてみたいです。
2008/11/21 @ 14:42
コメント from: haraoka [訪問者]
haraoka>伝統や文化を守っていかなければならない、と考えるようになりました。

讃岐のお雑煮の全国展開を是非ご協力を!!;-)


>昔は重国籍が認められていたは、その時しりました。

現在も条件次第で認められてるし、問題となっているのは22歳までに国籍選択が有名無実化している事です。


>「複数の女性に大量に日本人を生ませる行為はできない」と思っていました。

認知だけして、後は放置っていくらでも出来ますね。
後内縁の妻を何十人、何百人と作る事も法的には可能です。


>これを防ぐ立法は可能なのか?

民法や戸籍法を大幅に変更するしか方法は無いと思いますよ。
2008/11/21 @ 23:32
コメント from: haraoka [訪問者]
haraokaそういえば、上の計算式や帰化人数を見て思った事が、自然増加率が全然考えられてませんね。
昨年度の自然増加数は-16000人です。
昨年度の帰化の人数とほぼ同数です。
しかし、自然増加数のマイナスの増え具合を見ると、この先減るしか道がない様に見えます。
(2005年がマイナス、2006年が2年ぶりのプラスになったけど2007年で再びマイナス)
私にはこの先、減る方向でしか無い様に見えます。

参考;
平成19年 人口動態統計の年間推計
http://www.mhlw.go.jp/toukei/saikin/hw/jinkou/suikei07/

帰化許可申請者数等の推移
http://www.moj.go.jp/TOUKEI/t_minj03.html


ついでに、こういうのもご参考にどうぞ。

海外在留邦人調査統計
http://www.mofa.go.jp/mofaj/toko/tokei/hojin/08/pdfs/1.pdf

平成19年度に於ける外国人登録者数統計
http://www.moj.go.jp/PRESS/080601-1.pdf
2008/11/22 @ 02:03
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki統計情報ありがとうございます。忙しさにかまけて、数字がひどくいい加減です。増えていく期間が十分に長ければ、問題にならないと思います。時間と共に自然減少するので日本が崩壊する前にバランスする可能性もあります。

個人的には、他文化を感じたいなら、外国に行くべきだと思います。外国人にも来てもらえれば良いと思います。そうすれば文化摩擦など一切無く、文化交流できます。互いに「他人の芝は青い」と思って交流している方が双方幸せです。


ところで、讃岐うどんと讃岐のお雑煮は誇れる食文化です!
補正予算が決まれば、高速が往復5000円で行きやすくなるのですけどね。

そういえば、あっと言う間に雑煮が美味しい季節になりましたね。
2008/11/25 @ 12:03
コメント from: haraoka [訪問者]
haraokaまあ、東京の文化は日本各地から色んな奴が来てるおかげで思いっきりぶっ壊れてる様に思います。
由緒正しい江戸の言葉を喋る人って落語家くらいなものになってしまいましたしね。
うちの母方の祖母は東京育ちだったので江戸の言葉を喋っていたんですけど、その喋りは絶滅したと云っても良いくらいの言葉になってしまってます。
そういう意味では讃岐弁も保存していかないかんけど。

東京の讃岐うどん屋、丸香っていう店で毎年年初に讃岐のお雑煮を出すので東京在住の外国人に「これが日本を代表するお雑煮です」と親切に教えて食べさせています。
日本の正しいお雑煮の餅には必ず甘いあんこが入っていると世界中の人に教えて広めて行ってます。
焼き切り餅をお澄ましに入れるのは偽物です!と刷り込みまくってます:-)
2008/11/30 @ 00:53

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

7 コメント

コメント from: Koshian [訪問者]
Koshian漢字で検索してるからでは?
他に漢字でこういった用語を使う国ってありましたっけ?

googleを使うならニュース検索やブログ検索で言語指定して調べてみるといいのではないでしょうか。
2008/11/19 @ 08:11
コメント from: しばた [訪問者]
しばたohgakiさんの記事で興味を持ちました。
勉強不足なりに認知についても調べたのですが、認知すると、相手から養育費などの請求されるリスクがでてきますが、それも覚悟の上で偽装認知が出てくるでしょうか。

「認知」を商品として売る人がでてくるでしょうが、認知前は「請求はしませんから認知だけおねがいします」なんて言われても、認知してしまえば、請求権が発生します。子供が大人になるまで、そのリスクは続くことになりますしね。
純日本人がやるにはリスキーかもしれませんが、犯罪集団内に1人日本人国籍を持つ人ができれば、あとは芋づる式に国籍取得汚染は発生しそうではありますね。組織内で請求させないよう圧力かけられるでしょうし。

何にしても、危険な法律なのは確かですね。これを大々的に報道しないマスメディアの無能さが・・・給付金なんてどうでもいい。
2008/11/19 @ 10:43
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 漢字で検索してるからでは?

Google Trendsのグラフを見れば、常に中国から「国籍法」の検索がなかった事がわかります。日本の国籍法改正問題が中国からの「国籍法」をキーワードとした検索が増えた原因だと類推できます。
2008/11/19 @ 16:59
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 相手から養育費などの請求されるリスクがでてきますが、それも覚悟の上で偽装認知が出てくるでしょうか。

養育義務や遺産相続は認知をすると発生します。しかし、これらの経済的負担を気にするのは「持っている人」だけです。ドイツでの国籍法の悪用例もドイツ人のホームレスと一緒に偽装認知しています。

日本でも偽装結婚した国籍の不法取得は多くあります。認知であれば更に敷居が低いので悪用例が増えると予想できます。

> 犯罪集団内に1人日本人国籍を持つ人ができれば、あとは芋づる式に国籍取得汚染は発生しそうではありますね。

法務省の官僚は「外国に住む日本人の認知」について全く考慮していないようです。海外で育った20歳の男性を認知し、日本国籍を取得した場合、渡航履歴など全く関係ありません。10人、20人でも認知可能です。DNA鑑定でさえも、国籍取得を目的とした受胎を行う場合、意味がありません。

DNA鑑定だけを問題にしている方もいますが、扶養事実も確認し、国籍取得要件とするべきです。「認知はしました、しかし後の面倒は国が全部見てね」では無責任です。現状では日本国が無制限に日本人とも外国人とも分からない人を税金で養う事を可能する法律になっています。

2008/11/19 @ 17:12
コメント from: wuwang [訪問者]
wuwang期間を2008年11月に絞ると中国が出てきておりませんがどうして話題になっているという結果がでてきたのですか?
http://www.google.com/trends?q=%E5%9B%BD%E7%B1%8D%E6%B3%95&ctab=0&geo=all&date=2008-11&sort=0
2008/11/20 @ 23:29
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 期間を2008年11月に絞ると中国が出てきておりませんがどうして話題になっているという結果がでてきたのですか?

コメントありがとうございます。

今はでませんね。相対的な量が減ると表示されません。これが理由です。少なくとも、今なら11月に限っても、ブラウザの言語設定は今でも中国語になっているクライアントから英語と同じくらいアクセスが来ているようです。ブログに貼り付けられているスクリーンショットでは圧倒的に2位が中国、今現在2位のUnited Statesは7位で、それも、ごく少量となっています。中国からのアクセスは一段落し、大量のアクセスがアメリカからあった事がうかがえます。もしかすると、大量のアメリカ系日本人が生まれる(?)のかも知れません。

あまり有り得ない理由まで考えると

11月は日本からの検索が増えすぎた (グラフ表示からすると、ものすごく増えているようです。これが一番の理由でしょう)
6月の時点では大量の検索があったようなので、現在では中国語のコンテンツが作られ、そちらが検索されている。(あまり、ないでしょう)
Googleは中国からの検閲を受け入れているので操作した(いくら何でもこれは可能性が低いと思いますが、え?と思うような事をするのが中国政府ですから)

などが考えられます。

2008/11/21 @ 07:54
コメント from: wuwang [訪問者]
wuwang>ブログに貼り付けられているスクリーンショットでは圧倒的に2位が中国

ブログに貼られているスクリーンショットは2007年から現在までの総数をグラフにしたものであり現在話題になっていることを証明するには不適切だと思います。
2008/11/21 @ 17:31

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

10 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiDNA検査の有無は、国籍を認める際に、ホワイトリスト方式でチェックするのか、ブラックリスト方式でチェックするのか?と言った問題になります。

しかも、今回の法案ではクラッカーが最初から何処を、どう攻撃すれば、成功するか?明らかになっているブラックリスト方式なのです。

コンピュータセキュリティを生業をされてる方であれば、穴だらけかつ、易々攻略可能なブラックリスト方式では不正(偽装認知による国籍取得)を防ぐことは出来ない、と直ぐにお分かりでしょう。

他にも、官僚の発言をコンピュータセキュリティで類似の事項に例えると、「rootkitが埋め込まれても、アンチウィルスソフトがあるので大丈夫です」と同様の発言をしています。rootkitが埋め込まれないようにする現実的な方法があるのに、わざわざ使わないで「rootkitを入れてから、それを検出します」と言っていました。

飽きれて物が言えません。
2008/11/18 @ 15:12
コメント from: 勉強中 [訪問者]
勉強中初めまして.
この件について昨日からいろいろ勉強してますが
実務家の方のこんなブログがありました.
件の新聞記事に対する批評もあるようです.参考までに.

○○○!知恵袋 国籍法は改悪なんでしょうか?
http://blogs.yahoo.co.jp/isikeriasobi/55815187.html

どうしてもDNA鑑定が気になるけど、冷静に、法的な思考をする準備はあるよ、という方へ。
http://blogs.yahoo.co.jp/isikeriasobi/55832025.html
2008/11/18 @ 17:27
コメント from: 勉強中 [訪問者]
勉強中すみません.先ほどのコメントの訂正です.
「件の新聞記事」と書きましたが,新聞ではなく阿比留記者のブログのことでした.
http://abirur.iza.ne.jp/blog/entry/799264/
2008/11/18 @ 17:37
コメント from: haraoka [訪問者]
***--
haraoka官がDNA鑑定が高いから、それを嫌ってDNA鑑定を省いている様に見えます。
個人的にはDNA鑑定料が安ければ申請者負担でも良いとは思いますが、国が負担となると「高額なDNA鑑定料を国が払うなんてもってのほか!」という反対意見を恐れていれてないんじゃないかな?

あと、私が分かってないのは生地主義と血統主義は厳密に分ける必要性があるかと云う事。
日本国は血統主義であるから、何が何でも血統主義でないと駄目!でいいんですかね?
2008/11/19 @ 00:30
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 官がDNA鑑定が高いから、それを嫌ってDNA鑑定を省いている様に見えます。
DNA鑑定はそれほど高くありません。安い簡易鑑定なら数万円、高くても20万ほどだそうです。
今までの統計情報からは、年間600名ほどの方が、新しい国籍法により日本国籍を取得する事になるそうです。仮に1000名だとしても、1000*20万=2億円にしかなりません。

不正を捜査、摘発する努力やコスト(これには、犯罪者が流入することにより被害者が発生することも含む)に比べれば、2億円など必要なコストとして、国が負担すべきです。

どちらかというと、DNA鑑定をしないことにより不正申請が増え、それに対処する人員を増やす方がよっぽどコスト増になると考えられます。コストはあまり関係ないと思います。
2008/11/19 @ 17:21
コメント from: haraoka [訪問者]
haraoka更にざっと調べてみましたけど、官の本音は「血の繋がりが無ければ親子関係は無いのか?」という考えの下で法律本文にDNA鑑定に関して明文化しないとしてます。
ただ、必要に応じてDNA鑑定も要求する様な話ですよね。
あと、DNA鑑定に関しては施行令に入れるべきの話で本文に入れるのは間違いという話も有る様ですよ。

ちなみにDNA鑑定の胎児鑑定の場合、高い所だとMacBook Pro 2.53GHzが買えるくらいの値段ですよ。
2008/11/19 @ 23:38
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiMacBook Pro 2.53GHzですか!結構しますね。

省令、政令として鑑定を行うようにする可能性が残されているのは知っていました。しかし、省令や政令だと国会での審議なしに何時でも変更できてしまいます。国籍は国家の骨格と言え、国籍の価値を危うくするような事を防ぐ事項を省令や政令で定めるのは不適切だと考えています。(するか、しないか、分からないし)
2008/11/20 @ 04:33
コメント from: haraoka [訪問者]
haraokaむしろ審議無しで変更出来る方が大きな技術革新、大きな社会変化があった時に随時変更出来るというメリットがありますよね。
毎年毎年変化に対応しないといけない事が有ったとして、それを毎年毎年審議するのは国会に大きな負担がかかるのではないでしょうか?
コスト面等で考えると私は適切であると考えます。
2008/11/20 @ 22:34
コメント from: haraoka [訪問者]
haraokaそれと、DNA鑑定を含めるなら、親子関係の認定なので、国籍法でやろうとするのは明らかに変。
本当にDNA鑑定をやる必要性があるのなら民法の下でやるべきでは?
2008/12/06 @ 15:14
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiビジネスのクラスでアメリカのビジネス法を少々勉強した程度なので、法律について詳しい訳ではありませんが、国籍法と民法で区別が有ってもそれほどおかしな事ではない、と思っています。

国籍は日本の主権を構成する国民を定める重要な法律なので、民法のように基本的に個人や法人間の取り決めとは位置づけが全く異なります。

民法がこうなっているから、とかあまり厳密に考える必要はないと思います。例外的な取り扱いになるなら、その旨を記載すれば良いだけだと思います。例えば、国籍取得時は国籍法の規定の方が優先する、など。

原則論ばかり言っているとおかしな事になる典型例だと思います。例えば、日本は血統主義ですが出生地主義を取り入れてもなんの問題もありません。問題ない、というより取り入れるべきでしょう。ざっと英語版Wikipediaを見た所、各国とも両方の要素を取り入れているようです。
2008/12/07 @ 22:57

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: shuwat [訪問者]
shuwat平沼氏を中心に、38人の議員が可決延期を求めているようですが、残念ながらこの改正は今日可決されてしまうのでしょう。
自民党の村田吉隆国対筆頭副委員長いわく、「トゥー・レイト」だそうです。

「偽装認知の危険あり」 国籍法改正案に反対の議連結成(産経新聞) - Yahoo!ニュース http://headlines.yahoo.co.jp/hl?a=20081117-00000607-san-pol

しかし、法律が可決されたからといって、民主主義のこの日本で、我々国民がそれに対して何もできないわけではないと思います。

施行を阻止するなり、より厳格な内容の改正を実現するなりするために、我々にできる、次の行動は何でしょうか。

引き続きこのブログで次の行動指針も示していただけたらと思います。
2008/11/18 @ 08:14
コメント from: haraoka [訪問者]
haraokaちなみに中国の多重国籍排除政策をご存知ですか?

まず、血統主義国の外国人と結婚した中国人が子供を設けた場合、中国以外で出産した場合はその子供は配偶者の国籍しか得られません。
おそらくこれは人口減らしの一環を考えての規定でしょう。

あと、韓国も多重国籍者は厳しめですね。
兵役前を受ける前に韓国籍を離脱の禁止があります。
それと、更に厳しくしようと云う方向があって、多重国籍者は韓国人として扱わない様にしようという動きが常に有ります。

逆に緩いのがオーストラリアです。
オーストラリアは最近?多重国籍容認(むしろ推奨)になり、更に一度得た国籍は離脱不可能となってます。
確かカナダやフランスも多重国籍容認だったかな。

ということで、中国や韓国は多重国籍に関してはかなり消極的にしか見えません。
ただ、中国に関しては香港、マカオがあるので、あそこはまたかなり特殊ですけどね。
2008/11/20 @ 00:05
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>ちなみに中国の多重国籍排除政策をご存知ですか?

あまり詳しくは知りませんでしたが、知ってはいました。
なのでシナリオ中にも中国が多重国籍を認める、といれています。

haraokaさん、さすが国際派!よくご存知ですね。参考になります。
2008/11/20 @ 04:36
コメント from: 瞬 [訪問者]
*****
瞬【都内】国籍法改悪反対 一般人向け宣伝オフ
http://schiphol.2ch.net/test/read.cgi/offmatrix/1226930122/

【日にち】11月30日(日)
【時間】2時〜5時予定
【場所】東武浅草駅前(道路使用許可申請済)
【持ち物】各自印刷したチラシ。+αもOK、最悪手ぶらも可
【服装】極端に目立つ格好でなければ何でも可ですが、コスプレや特定の政治思想を連想させる格好(特攻服や、日の丸の鉢巻きetc)はご遠慮下さい。

ネットを見ない層に「知らせる」事を目的に、ビラ配り・今回の問題の説明・請願書のお願いをします。
あまり大掛かりにならないように、気軽に参加できるシンプルな企画を目指しています。
よろしくお願いします。




2008/11/20 @ 19:03

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

6 コメント

コメント from: norakuro [訪問者]
norakuroお久しぶりです

にわかに囁かれ始めた国籍法の成立騒ぎですが、私も同意見です
私自身は旅行も含めて日本から出た事ないのでピンとこない部分がありましたが、大垣さんの様に外から日本を見てこられた方の意見を拝見すると事の重要性がよく判ります。

私は家の家業(農業)もやっておりますが高齢化により労働力低下で外国人を雇い入れて大掛かりにやる農業法人化と言う手もありますがどこもうまく行ってると言う話は聞きませんしむしろトラブルしか聞きません。
日本の諺で「軒先貸せば母屋まで」と言われようにこのままでは先祖代々元々住んでる我々の主権が取られる事を危惧していますし
子を持つ親としてかなり心配です。

こう言った重要案件を報道しないマスコミに対していかがなものかと思っており、くだらないバラエティ流してる間があるならこう言った事に光を当てるのが本分じゃないかと私は思います。

話はそれますけど某アニメの様に「流入した外国人の為に血税が使われ、そのための重税を我々が払う」と言う台詞は自分の口から言いたくないです。
2008/11/16 @ 14:40
コメント from: かずひこ [訪問者]
かずひこ海外で生活すると、確かに「日本国籍はおいしい」というのをよく実感するので、日本国籍取得の悪用に対する懸念は理解できます。
しかし一方で、現在フランスで「移民」として生活している立場からすると、「移民が増えることは即ち問題である」という論は、過度のナショナリズムを感じさせる極端な意見だと感じます。もちろん、フランスでもそういう意見の人もいればそうでない意見の人もいますが、そんな様々な立場の意見のバランスの中で、私たち家族が十分な居場所が与えられていることをとても幸せに感じています。
また、「日本文化と他の文化では文化的な違いは大きく」という点についても、別に日本文化だけが決定的に他の文化と際立って異なっているわけではなく、その他の文化もそれぞれに十分に個性があり、十分に大きく異なっている、というのが私の実感です。
確かに、日本人が他の文化を受け入れて多文化が共生する社会になるには時間がかかるかも知れません。ですが、徐々にそうなっていくのは不可避なのではないかと思います。私はむしろ、日本だけが特別だという意識を日本人だけが信じつづけて世界から孤立していくことの方が、日本の将来に対する危機だと考えます。
国籍取得の悪用を防ぐための方策にさらなる検討を要するという点は同意しますが、本来国籍を取得できてしかるべき子供たちの権利が、偏狭なナショナリズムのためにつぶされてしまってはいけないと思います。
2008/11/17 @ 21:05
コメント from: JA [訪問者]
****-
JA【都内】国籍法改悪反対 一般人向け宣伝オフ
http://schiphol.2ch.net/test/read.cgi/offmatrix/1226930122/

【日にち】11月30日(日)
【時間】2時〜5時予定
【場所】東武浅草駅前(道路使用許可申請済)
【持ち物】各自印刷したチラシ。+αもOK、最悪手ぶらも可
【服装】極端に目立つ格好でなければ何でも可ですが、コスプレや
     特定の政治思想を連想させる格好(特攻服や、日の丸の鉢巻きetc)はご遠慮下さい。

ネットを見ない層に「知らせる」事を目的に、
ビラ配り・今回の問題の説明・請願書のお願いをします。
あまり大掛かりにならないように、気軽に参加できるシンプルな企画を
目指しています。
よろしくお願いします。
2008/11/20 @ 18:51
コメント from: 改悪国籍法について河野太郎の弁明 [訪問者]
*****
改悪国籍法について河野太郎の弁明http://www.news.janjan.jp/government/0811/0811160591/1.php

最高裁判決と適合させるためだそうです。
2008/11/22 @ 00:12
コメント from: ヤマダセイジ [訪問者]
*----
ヤマダセイジ訴追請求書をだしましょう。

訴追請求状はここからhttp://www.geocities.jp/toto_bunko_iza/library/sotsui081202.pdf

宛先: 〒100-8982 東京都千代田区永田町2-1-2 衆議院第二議員会館内裁判官訴追委員会 御中

2008/12/05 @ 11:48
コメント from: sis [訪問者]
sisやっぱりでてきましたよ。
簡単に予想できたことですが、今後もこのまま継続していくのか注視していかねば。でも、民主は在住外国人に参政権とかまで言ってるからダメかw

http://www.nikkei.co.jp/news/shakai/20091029AT1G2901129102009.html
2009/10/29 @ 14:27

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: totoro [訪問者]
totoro前回のディスカッションでは、ホワイトリスト否定派が多かったような気がします。
うちで扱ってる製品も、ホワイトリストを搭載してます。
一部の方は、ホワイトリストでは万全な対応が出来ないような解釈をされていますが、WAFの設置場所が微妙に違うと思うんですが・・・。
WEB - WAF - DB とすれば、DBに到達する様々な悪意有る行動を停められますし、WEBとDBの間にあるからこそ、WEBアプリの仕様次第で、完全なホワイトリストが設定できるんじゃないかと思います。
XSSやCSRF等は停められませんが、SQLインジェクション系はすべて停められると思うんですが、こういう考えはあのパネラーには、無かったのでしょうか。
2008/10/03 @ 12:53
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki紹介していただいたタイプの製品であれば、ほぼ100%SQLインジェクションを防止することが可能ですね。ホワイトリストの定義もSQL実行のログから生成すれば、半自動でリストの定義もできるように作る事も可能でしょう。DBMSをSQLインジェクションから守ることだけを目的としたアプリケーションファイアーウォールがあっても良いと思います。

この製品とWAFとの違いは、DBMS専用であるかないか、ですね。

WAFの問題は検査対象の入力が複数の用途に利用され、出力される事がほとんどであることです。HTML、XML、SQLなど出力先が複数でその出力先にあったエスケープ処理を行わないと、安全性を維持できません。しかし、エスケープ方式や出力時の制約が異なるので全てを守る事は不可能です。つまりダメなアプリはWAFでは守れないことを意味します。「WAFで守る」というよりは「WAFで予防する」(未知の脆弱性を予防する)という考え方で使用すべきです。

2008/10/05 @ 10:59
コメント from: sanaki [訪問者]
sanakiFirewall の[インバウンド|アウトバウンド]を、プログラムの[データの入力|データの出力]に関連付けて考えるのは無理があると思います。

なぜ、そこまでして「ホワイトリスト」という言葉にこだわるのでしょうか?

単純に「勘違いしてました」で済む話だと思うのですが・・・
2008/10/07 @ 21:19
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 単純に「勘違いしてました」で済む話だと思うのですが・・・

勘違いとはどこを勘違いしているのでしょうか?
勘違いしているのはあなたの方ではないでしょうか?

プログラマには出力時に変数の安全性に十分な注意をしていない人が多過ぎます。最も分り易いと思われるコンセプトが変数をホワイトリスト方式で取り扱う方法です。

変数の取り扱いがいい加減なプログラマの方でどのように変数を取り扱えばより安全なコードとなるか理解できない方なら、勘違いしている、と思っても仕方ないかも知れません。

ホワイトリストとブラックリストは元々、入力用のチェックリストの作り方のコンセプトを表す用語だという事は初めから百も承知です。用語を元々の用途から拡張して使うのはごく普通の事です。「間違っている」とか「勘違いしている」ととらえるのは頭が固過ぎるように思えます。
2008/10/18 @ 17:35

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

11 コメント

コメント from: 徳丸浩 [訪問者]
徳丸浩先日はお話できてよかったです。
「おまけ」に関して、小生の意見は以下のブログに書いておりますのでご覧ください。お忙しいようであれば、一番最近の「まとめ」をごらんいただければよろしいかと。

数値項目に対するSQLインジェクション対策のまとめ
http://www.tokumaru.org/d/20070924.html#p01

SQLの「暗黙の型変換」で実行速度が遅くなるのはどのような場合か
http://www.tokumaru.org/d/20070614.html

数値項目に対するSQLインジェクション対策
http://d.hatena.ne.jp/ockeghem/20070503/1178208149

数値リテラルをシングルクォートで囲むことの是非
http://d.hatena.ne.jp/ockeghem/20070502/1178042280

変数に型のない言語におけるSQLインジェクション対策に対する考察(1)
http://d.hatena.ne.jp/ockeghem/20070501/1178039408
2008/09/29 @ 15:21
コメント from: 意味がわかりません [訪問者]
意味がわかりません> 出力時にエスケープしない特権的な変数をホワイトリスト化し、最小限の特権的変数以外の変数全てを出力先の仕様にあったエスケープを行えば、コード監査が非常に行い易くなります。

それを「ホワイトリスト」と呼ぶから意味がわからない、と言われるのではないでしょうか。

ホワイト(ブラック)リストというのは、「素性のわからない何か」に対して、それがリストに含まれるかどうかで「ホワイト(ブラック)」か判断するもの、というのが一般的な意味でしょう。

変数というのはプログラマが自分で作った「素性のはっきりしたもの」で、その変数をどう扱うかを決めるのもプログラマなので、その扱いを決めるためのリストがあったとしてもそれは「ホワイト(ブラック)リスト」ではないと思います。
2008/10/01 @ 20:23
コメント from: おまけ [訪問者]
おまけ> Q: エスケープせずにバリデーションすれば良いのでは無いか?
> A: バリデーションでもOKです。しかし、できるだけ単純なセキュリティ対策がないか考慮し、その結果全てのパラメータを文字列として取り扱う事をお薦めしています。

「バリデーションでもOK」ではなくバリデーションを行った上でこの手法をとるならわかりますが、バリデーションの代わりにはなりません。クエリの失敗は想定していない状況でのみ起こるようにすべきで、単純な入力値の誤りでクエリの失敗が引き起こされるべきではありません。

セキュリティ以前の問題として、クエリの失敗がユーザーのtypoなのか致命的な別の問題なのか、いちいちデータベースが返すエラーメッセージを解析するんでしょうか。そんなことをするよりはバリデーションの段階ではじいた方が確実です。

そもそも、大前提として今や「変数を埋め込んだSQL」を用いること自体が間違いですが。変数は全てバインドパラメータで渡すべきです。より「単純な」方法なのになぜこちらを強調されないのでしょうか。

(当然この場合でも入力値の検証は必要です)
2008/10/01 @ 22:03
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>「素性のはっきりしたもの」で、その変数をどう扱うかを決めるのもプログラマなので、その扱いを決めるためのリストがあったとしてもそれは「ホワイト(ブラック)リスト」

ホワイトリストとはリストの作り方(列挙の手法)のコンセプトです。出力の場合、特権(直接出力)を認める変数を列挙すればホワイトリストと考えれば自然だと思います。変数の扱いをホワイトリストの定義に従って決めれば良い、という単純な考え方です。

分り辛ければリストに従って出力をエスケープする関数がある事を想定すれば分り易いかも知れません。

とにかくアプリケーションにダメダメなコードが多い理由の一つは

>「素性のはっきりしたもの」で、その変数をどう扱うかを決めるのもプログラマ

といった考えに基づいて作っていたからです。数えきれないほどの失敗事例があります。

プログラマが勝手に決めるのでは無く、直接出力が必須かつ確実に安全な変数だけ直接出力するよう、プログラマの頭の中で変数が「白」なのか「黒」なのか良く考えてから直接出力する変数の列挙方法がホワイトリストの作り方と同じと考えています。

この考え方に従って、もっと分り易く、適切な用語(XSSよりJavaScriptインジェクション、HTMLインジェクションのように)があるのであればその用語を使っても良いのかもしれませんがより適切な用語は、今の所思い付きません。
2008/10/01 @ 22:15
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 単純な入力値の誤りでクエリの失敗が引き起こされるべきではありません。

懇親会のQ&Aなので当たり前の事は省略しています。フェールセーフやフールセーフ対策として安全に動的に生成されたSQLを実行する方法を議論していまた。

当たり前のセキュティ対策は既に行っている事が前提です。セキュリティの基本コンセプトである多重のセキュリティとして、クエリ実行前にチェックしてもOK、としています。

要するに入力バリデーションは当たり前で既に必要な対策済みである事が大前提、それでもチェック漏れや勘違い等でエスケープやバリデーションしないとSQLインジェクションが成功してしまうケースも考えられるので、多重のセキュリティとして出力前にチェックしてもOK、という事です。

懇親会の時も私が明確にフェールセーフ/フールセーフ対策と言っていなかったので理解されていない方もいらしたかもしれませんが、フェールセーフ/フールセーフを突き詰めて考えると、全部エスケープかプリペアードクエリが最良だと考えています。

これでもテーブル名やフィールド名の問題が残ります。ORMでも注意が必要になるケースもあります。これらは仕方ないので教育で対処するしか無いでしょう。
2008/10/01 @ 22:22
コメント from: 匿名希望 [訪問者]
匿名希望> 懇親会のQ&Aなので当たり前の事は省略しています。フェールセーフやフールセーフ対策として~

ではなおさら"バリデーション*でも*OK"というのは意味がわかりません。バリデーションは当たり前のことではないのでしょうか。さらにそれにつなげて"しかし~"と書かれているので「バリデーションではじく代わりに使え」と読めてしまいます。さらに言うと、

http://gihyo.jp/dev/serial/01/php-security/0014

ではこれが"攻撃目的の入力の検出に使える"と書かれています。

当たり前の事をやった上でのプラスアルファであれば、検出できるのは攻撃目的の入力ではなく入力値の検証漏れではないでしょうか。前者であれば「検出できて良かったね」ですが後者では「プログラムに致命的なバグがある」ということになります。起きたことは同じでも意味は大違いです。
2008/10/02 @ 00:09
コメント from: 匿名希望 [訪問者]
匿名希望ホワイトリストとはなんだ、という話をしているのに

> とにかくアプリケーションにダメダメなコードが多い理由の一つは
> >「素性のはっきりしたもの」で、その変数をどう扱うかを決めるのもプログラマ
> といった考えに基づいて作っていたからです。

という話をするから議論がかみ合わなくなるのでは。

> この考え方に従って、もっと分り易く、適切な用語があるのであればその用語を使っても良いのかもしれませんがより適切な用語は、今の所思い付きません。

だからといってホワイトリストと呼ぶのは適切ではない、という話です。

「全部エスケープしてから出力」という手法について主張されたいのであれば、ホワイトリストという誤解を招く言葉を使わない方がいいでしょう。

「変数を列挙したものもホワイトリストと呼んでもいいではないか」という主張をしたいのであれば、現在の方法への批判とかどうセキュリティに貢献するかという話はされずに、ホワイトリストとはなんぞやという定義に絞って話をされたほうがいいでしょう。
2008/10/02 @ 10:54
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> ではなおさら"バリデーション*でも*OK"というのは意味がわかりません。バリデーションは当たり前のことではないのでしょうか。さらにそれにつなげて"しかし~"と書かれているので「バリデーションではじく代わりに使え」と読めてしまいます。

どこでどれくらいのエラー検出をするのか? という問題はシステム設計の問題です。

SQL文生成の場合、既にバリデーション済みの変数と想定されるもの(例えば、IDなど)に再度同じバリデーション処理(例えば、IDの場合、符号無し整数であること)を行うのはオーバーキルだ、と考えて良いシステムの方が多いです。出力の場合は「バリデーションではじく代わりに使え」(全部エスケープする)で十分でしょう。不十分と考えられるシステムであれば出力時もバリデーションすればよいでしょう。

フェイルセーフとフェイルディテクトは別の考え方になります。私が常に言っているのは入力時に厳しいバリデーションを完全に行いましょう、そして出力時には万が一バリデーションが不十分であったり、予想していない経路で改変された変数があっても、セキュリティホールにならない様に出来る限り安全に失敗するフェイルセーフを考えましょう、という事です。ほとんどのシステムでは出力時の不正な入力の検出はオプション項目だと思っています。

2008/10/02 @ 16:24
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>> とにかくアプリケーションにダメダメなコードが多い理由の一つは
>> >「素性のはっきりしたもの」で、その変数をどう扱うかを決めるのもプログラマ
>> といった考えに基づいて作っていたからです。

>という話をするから議論がかみ合わなくなるのでは。

何故有用なのか理解されていないように感じたので事実を書いたまでです。

>> この考え方に従って、もっと分り易く、適切な用語があるのであればその用語を使っても良いのかもしれませんがより適切な用語は、今の所思い付きません。

>だからといってホワイトリストと呼ぶのは適切ではない、という話です。


明確にホワイトリストの定義を行い、出力時にも同じくその考え方が使え、ホワイトリストの考え方を適用した方が安全なコードになる、と言っています。

どうして「出力時にホワイトリストの考え方を適用するのが適切ではない」と考えられるのですか?

用語として利用方法がおかしいと思われるのであれば、ホワイトリストの定義を書かれて、何故適切でないか書かないと議論は進まないと思います。
2008/10/02 @ 16:30
コメント from: 匿名希望 [訪問者]
匿名希望> どうして「出力時にホワイトリストの考え方を適用するのが適切ではない」と考えられるのですか?

そんな話はしていませんよ。用語の使い方についてしか述べていないのに、「手法」について反論されるので話がかみ合わないのです。
2008/10/03 @ 00:17
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>> どうして「出力時にホワイトリストの考え方を適用するのが適切ではない」と考えられるのですか?
>そんな話はしていませんよ。用語の使い方についてしか述べていないのに、「手法」について反論されるので話がかみ合わないのです。

もともと「用語の正しい定義と利用」について異論があるなら「用語の正しい定義]を示し、正しい用法を例示しなければなりません。それをしないで「同じ手法」で「出力もより安全にできる」と解説してことがおかしいと言われても困ります。

これらを示さずに「間違っている」と言われても議論が噛み合ないのは当然ではないでしょうか?

間違っている、と指摘されているのですから、どこがどう間違っているのかご指摘頂けると助かります。この件に関する議論で明確な用語の定義や抽象的でない論理的なご意見はまだ頂いていません。

2008/10/07 @ 09:22

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

6 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiStefan氏が作っている守護神モジュールではビット幅を64bitに拡張したり、srand/mt_srandを利用せず強制的に自動的に乱数生成器を初期化するようになっているようです。

64bitに拡張する事によりルックアップテーブルの作成はかなり困難になりますが、擬似乱数をそのまま出力してしまう設計は行わない方が良いでしょう。
2008/09/24 @ 12:22
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakimt_srandのPHPマニュアルに間違いがあります。

Since 5.2.1 The Mersenne Twister implementation in PHP now uses a new seeding algorithm by Richard Wagner. Identical seeds no longer produce the same sequence of values they did in previous versions. This behavior is not expected to change again, but it is considered unsafe to rely upon it nonetheless.


php -r "mt_srand(1234); echo mt_rand(0, 100000);"

等とすれば分かりますが、同じ乱数が生成されます。この記述はPHP 4.2.0以降のPHPでは時間とプロセスIDを利用したphp_combind_lcg関数(PHPの内部関数)によって自動的に初期化される仕様と混同(?)している可能性があります。
2008/09/24 @ 12:38
コメント from: sanaki [訪問者]
sanakimcrypt_create_iv() はどうですか?
2008/09/25 @ 10:12
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> mcrypt_create_iv() はどうですか?

プロトタイプは

mcrypt_craete_iv(int size[, int source])

で、sourceには/dev/random(MCRYPT_DEV_RANDOM), /dev/urandom(MCRIPYT_DEV_URANDOM)を利用できますが、ソースを指定しない(MCRYPT_RANDOM)とphp_rand(libcのrandのラッパー。初期化は自動的に行われる)が利用されます。

sizeで指定した分だけのデータをrandom/urandomから読み出します。MCRYPT_RANDOMの場合、ループになっていてsizeの回数だけphp_randを呼んでInitilization Vectorを作成します。

MCRYPT_RANDの場合、mt_randの方を呼んだ方が良いと思いますが、初期化の方法としては妥当と言えると思います。
2008/09/25 @ 15:26
コメント from: mrkn [訪問者]
***--
mrknMT に限らず、非暗号論的乱数はセキュリティに関わる部分で用いないほうが良いですよね。
2008/09/26 @ 18:03
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> MT に限らず、非暗号論的乱数はセキュリティに関わる部分で用いないほうが良いですよね。

その通りですが現実的にはランダムパスワードの生成などに疑似乱数が使われている事が多いと思います。

個人的には、ランダムパスワードの生成には/dev/urandomから200バイトほど読み取り、SHA1などでハッシュと取り、その一部を切り出す方法が好みです。
2008/09/28 @ 13:37

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで、紹介したF5のブログで「パースするセキュリティソリューションは知らない」とありましたが、NoScriptのアンチXSSフィルタはSpiderMonkeyで実行して、フォルスポジティブを防いでいたと思います。
2008/09/13 @ 05:14

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiパスワードの管理もそうですが、当たり前の事を当たり前のようにするのが重要だと思います。

セキュリティ対策としてフィルタリングソフトを導入していても、できる限り早くセキュリティパッチを適用する重要性が十分理解されているのか、ちょっと心配になったのでこのエントリを書きました。
2008/09/09 @ 11:47

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: Henrich [訪問者] メール
***--
Henrich「SSHパッケージの脆弱性が原因」だとは私はerrataからは読み取れなかったのですが、どうでしょうか?
2008/08/23 @ 21:52
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki読み直してみました。確かにそうですね。ありがとうございます。書き直しておきます。

しっかり読まなかった言い訳ですが、関係ないのであればごちゃ混ぜにするのは良く無いと思います。何故こんな書き方になったのでしょうね。何が悪かったのかさっぱり分りません。そのうち公開されるのかも知れませんが。
2008/08/24 @ 05:44
コメント from: Henrich [訪問者] メール
Henrichいや、読み違えても致し方が無いと思います。fedora のアナウンスの方を読んだ方がまだ情報量があるかと(それでも根本原因は全然書いていませんが…)

自分のページ http://d.ma-aya.to/?date=20080823#p01にそのあたりを書いておきましたので、逆に大垣さんから見て間違いなどあればツッコミ下さい。
2008/08/24 @ 07:47

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: とおりすがり [訪問者]
とおりすがり初めまして。いつも記事を読ませて頂いてます。

前回あたりから思っていたのですが、一般的な「ホワイトリスト」という言葉の使い方ではないような気がします。

根本的に「プロアクティブな対策」を推奨することと、ホワイトリストを推奨することは全く対応が異なる話だと思います。恐らく、セキュリティをやっている人間なら誰もが理解してると思いますが。

「安全なものしか通さない」というプロアクティブな考えは、セキュリティでは常識です。しかし、その方法は色々あるわけですよね。
例えば、数字x桁ならば受け付ける(それ以外ははじく)という対策は、一般的にホワイトリストとは呼びませんよね。

それと、ホワイトリストが現実的でない、といっている人達も当然、上の常識は判っていて、出来るのなら当然やっているが、話題に上がっていた、XSS等といった攻撃手法を防ぐ、という幅広い話には、ホワイトリストでは対策出来ないと言っているだけではないでしょうか。シチュエーションが限定されているならばともかく、常識的に考えて「XSSを防ぐにはホワイトリストですよ」とは言えないと思います。

話の発端は、なんでホワイトリストを説明するのにXSS Cheet Sheetをだすのか、という所だったかと思いますが、あれは一般的にみてもあきらかに誤解を招くような記述だと思いました。誤解する人がわずかだが居るようだ、ではなく、誤解しない方がレアケースでしょう。
なにより「いじわるな」と本人で認めているのは、全くいかがなものかと。
2008/08/24 @ 06:42
コメント from: SAWA, Izumi [訪問者]
***--
SAWA, Izumi早速のフォローありがとうございます。
再度、上記のようなエントリを作成しました。
『続・ホワイトリストとブラックリスト』

http://pfrb.blog114.fc2.com/blog-entry-6.html
2008/08/26 @ 15:20
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki企業のセキュリティ対策について最も大切なのは「セキュリティポリシー」ですと言っています。開発やプログラミングにも「セキュリティポリシー」のような物が必要です。一つ一つ、ポリシーを作る事も可能ですが問題に対する一貫した「姿勢」が大切だと考えてます。プロアクティブなセキュリティ対策を常に先に考慮し、可能な限りプロアクティブなセキュリティ対策を採用する「姿勢」が重要と考えています。

時間もあまり無かったので「ホワイトリストの作り方」はちょっと不親切な書き方でした。私もバリデーションは全てホワイトリストでやるべきだ、とは考えていません。このエントリで紹介したようにホワイトリストのつもりでホワイトリストになっていないケースも少なくありません。「ホワイトリストの作り方」で紹介したXSS Cheat Sheetを見れば、生半可なブラックリストなど全く役に立たない事が5分もあれば分ると思います。(英語サイトのなので敷居が高いのかな...)

開発やプログラミングで、セキュリティ上、最も大切なのは問題に対する「姿勢」だと思っています。受動的なセキュリティ対策は非常に採用しやすいです。設計の問題、入力/出力先の仕様など理解せず、問題が見つかって、分ってからから対処するのですから当たり前です。

能動的な対策は多くの手間が必要となります。設計上の問題、入力/出力先の仕様を正しく理解してから作る事が前提となります。全ての開発者に幅広く、そしてレベルの深い知識を要求する事は、コストが非常に高く、現実的はありません。しかし、「7つの習慣」ではありませんが「姿勢」を身につける事は容易です。

筆者はUS CERTとMSが2000年にXSS問題の提起をした時にプロアクティブなセキュリティ対策の視点から、文字エンコーディングは厳格に扱うべきと考えていました。2000年時点では壊れた文字エンコーディングを利用した、具体的な攻撃手法などを考えつきませんでしたが、隠れたリスクを予想はしていました。

実際に複数文字エンコーディングや壊れた文字エンコーディングを利用したXSSやSQLインジェクション、XMLインジェクションは何年も経ってからPoCが発表されました。

このような事例は他にもあります。スタックスマッシング攻撃が実用化された当初はヒープ領域のメモリ管理問題はセキュリティ上大きな問題ではないと認識されていました。しかし、研究が進むとヒープ領域のメモリ管理問題もスタックメモリ管理の問題と同様に任意コード実行が可能である事が分りました。
# 個人的にはこの経験がセキュリティ対策を能動的に考え、実践
# する事の重要性を学ぶ機会になりました。

経験に学ぶより、歴史に学ぶ方が遥かにコストが少なくなります。
歴史的にはブラックリスト的、受動的なセキュリティ対策は、無意味とは言いませんが、コレに基準を定めると安全なシステム構築には有害である事は証明されていると考えています。

しかし、システム開発の現場は理想主義だけではこなせないのが現実です。従って、能動的な対策を基本に置きつつ必要な妥協を行うバランス感覚も欠かせません。主従を間違えなければ、多くのプロジェクトは正しい方向で進むと思います。最初にプロアクティブな対策を考え、プロジェクトのリソース(開発者のスキル、開発期間、開発コストなど)と要求仕様を考慮して、最適なバランスで開発を進める事が重要だと考えています。

Webアプリケーションの脆弱性はWebアプリケーションので対処するべきで、対策が取れるまでサイトを閉鎖するのがセキュリティ対策だけを考慮すれば最良であることは明らかです。対策が行われるまでサイトを閉鎖する事は現実的ではありません。WAFによる保護も必要となるでしょう。しかし、WAF導入等の対策はWebシステムの様に管理された環境下でのシステム開発では受動的な対策と言えます。

# 立場や環境が異なればWAFも能動的な対策と言えます。
# 私は基本的に「開発者」としての立場からセキュリティ
# 対策を見ています。
# 運用担当者の立場から見れば、WAFは能動的な対策と言え
# るでしょう。



私がWAFに関して危惧しているのは、FirewallやSSLによるセキュリティ対策が万能であるかのように誤解された事が、WAFでまた再現する事です。
2008/08/27 @ 09:01

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: 徳丸 浩 [訪問者]
徳丸 浩コメントしました。「プログラミングではホワイトリスティングが基本ではない」

http://www.tokumaru.org/d/20080820.html#p01
2008/08/20 @ 21:51
コメント from: SAWA, Izumi [訪問者]
***--
SAWA, Izumi上記のようなエントリを作成しました。
『ホワイトリストとブラックリスト』


http://pfrb.blog114.fc2.com/blog-entry-5.html

2008/08/21 @ 11:51

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

7 コメント

コメント from: 加藤泰文 [訪問者]
加藤泰文PHP 4.4.9 は出ちゃってますね.ChangeLog を見る限りではそれほどたくさん何か直った印象は受けないですね...
2008/08/08 @ 09:04
コメント from: sharl [訪問者]
sharlPHP4.4.9: CVE-2008-2829 buffer overflow in IMAP request has NOT patched
2008/08/08 @ 09:22
コメント from: sharl [訪問者]
sharlPHP4.4.9: CVE-2008-1384 integer overflow in printf() has NOT patched.
2008/08/08 @ 09:29
コメント from: sharl [訪問者]
sharlPHP4.4.9: #bug44720 prevent crash within session_register() has NOT patched.
2008/08/08 @ 09:39
コメント from: sharl [訪問者]
sharlPHP4.4.9: CVE-2008-2051 checking argument number of escapeshellcmd() and escapeshellarg() has NOT patched.
2008/08/08 @ 09:47
コメント from: sharl [訪問者]
sharlPHP4.4.9: #bug44667 proc_open() does not handle pipes with the mode 'wb' correctly has NOT patched.
2008/08/08 @ 09:53
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiおくればせながら、sharlさん、ありがとうございます。
一応確認の為のコメントです。

PHP4.4.9: CVE-2008-2829 buffer overflow in IMAP request has NOT patched
PHP 5.2.7でやっと修正されました。4.4.9でも修正されていません。

PHP4.4.9: CVE-2008-1384 integer overflow in printf() has NOT patched.
修正されていません。

PHP4.4.9: #bug44720 prevent crash within session_register() has NOT patched.
修正されていません。

PHP4.4.9: #bug44667 proc_open() does not handle pipes with the mode 'wb' correctly has NOT patched.
修正されていません。

時間がかかりましたが、近日中にまとめエントリを公開したいと考えています。
2009/01/03 @ 11:19

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: ます [訪問者]
ます作業していただき、ありがとうございました。

自分も大垣さんと同じように思っています。
これらのパッチがPHPユーザーのセキュリティ意識の底上げに少しでも寄与できれば嬉しいです。

今後とも、よろしくお願いします。
2008/07/16 @ 06:15

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: 加藤泰文 [訪問者]
加藤泰文Planex のルータだと,スイッチ一つでルータ機能が無効になり,ブリッジになるので,私はそちらを購入しました.ルータ機能なしのアクセスポイントより安価ですし.(^_^;)
2008/06/12 @ 18:09
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiご無沙汰しております。
ブリッジタイプのアクセスポイントは必要ですよね。

本当にバッファローさんは無駄な事をしていると思います。クライアントマネージャが便利だ、とユーザ思われて使われていれば、次に買う時に「何時も無線LANを設定している時にBaffaloって書いたウィンドウで設定するよね」と思って同じメーカの物を買うものだと思います。

満足しなくても最低限、不満を持たれないようにする事は非常に重要だと思います。不満を持っていなければ交換する時に何となく同じメーカの製品を買うものです。

「このクライアントソフトウェアを開発するのにコストが必要なのだから、そのメーカ以外の製品の組み合わせなら使えなくしても当然では?」と考える方もいらっしゃるかも知れません。この考え方は近年のマーケティング思考ではありません。囲い込み戦略を行う古いマーケティング戦略で現在では有用などころか有害な戦略と言ってよいでしょう。

NICやアクセスポイントを販売する為にこのソフトは開発されています。バッファローはNIC、アクセスポイントなどの「ハードウェア」販売を生業としており、このソフトは販促の為のおまけと言えます。他社製のNIC・アクセスポイントの組み合わせで利用されても、開発費やサポート費が増えることもありません。したがって、何も困る事はありません。WPSを利用する場合に自社の名前の入ったこのソフトが利用され、広告となれば次回購入の可能性が高くなります。

他社製WPSで接続できない仕様、とかWCA-G(WiFi Gamers)がPC等に接続できないとの記述などは信じられないような仕様とサポート姿勢です。私が社長なら責任者を呼んで何故このような事になってしまったか徹底的に調査すると思います。
2008/06/13 @ 13:38

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: ほそや [訪問者]
ほそや大丈夫ですよ〜 :-)
民間の受託開発と政府は全然関係ないですし。

中国の企業の性質を理解した上でそれに応じた対策を発注元・発注先が一緒に打てば状況はコントロールできます。

特に日本向けの開発をやっている会社は、ここ二年くらいセキュリティ面の日本からの要求が厳しいのでいろいろ手を打っています。

発注側も、個人情報や顧客のデータなど漏洩するとダメージが大きいようなものは原則として中国には渡しません。

注意すべきは政府よりもまず従業員です。離職率が高いということを念頭に置く必要があります。さらに自分の書いたソースコードは自分のものと思っている人が多く離職時の持ち出しがよくあります。

また、社内でインターネットにつながっているPCはフィルタリングなどされておらず、ウィルスの巣みたいになっている会社も多々あります。

100%ローカル企業ではソフトは全て海賊版ということもいまだに当たり前で、発注者もそこは見て見ぬ振りをしています。

というような性質の違いを知って対策を打てば大丈夫ですよ。
2008/06/12 @ 13:01
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiご無沙汰してます :)

中国に住んでいるほそやさんの言われる事なのでコメントの信頼度は100%ですね。
非常に参考になります。ありがとうございます。

2008/06/12 @ 16:58

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiメールテンプレートの冒頭部分の日付が「2007年6月28日」となっていました。「2008年6月28日」が正しい日付です。ブログのエントリは更新しました。メールでテンプレートを受け取った方はご注意ください。
2008/06/12 @ 06:55

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: os0x [訪問者] メール
***--
os0xこんにちは。
nitoyonさんの所に大体の経緯がありますが、
ttp://d.hatena.ne.jp/nitoyon/20080529/flash_zero_day
最終的には「ゼロデイでなかった」という結論が出ているようです。
2008/06/02 @ 20:50

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

7 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiアップルの型番一覧のページ

http://www.apple.com/jp/support/list.html#macbook

を見ると「MB063J/A」などが無くなってますね。ファームアップデートでB相当になったので記載されなくなった、と理解してよいのかな?
2008/04/19 @ 19:21
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiBuffaloからだけの情報では不安な方はKingstonなど、他のメモリメーカのページも参照されると良いと思います。第三世代Core2 DuoのMacBook以降なら4GBまでアップグレード出きるみたいですね。

試しに今回購入したTranscendのサイトを検索してみると、ホームページ上は2GBまでとAppleのスペックと同じになっていした。
2008/04/19 @ 22:04
コメント from: T.Chiba [訪問者]
T.Chibaはじめまして。通りすがりですが目を引くエントリーがあったので、コメント残します。

私も同じような理由で、同じ型番のMacBookに4GB RAMを実装しています。
「このMacについて」や「アクティビティモニタ」の表示では4GBになっていますが、残念ながら実際のところ利用できるのは3GB分のようです。「アクティビティモニタ」の「空き」「固定中」「現在使用中」「現在非使用中」を合計して確認しました。
確かチップセットの制限だったと思います。「macbook 3gb 4gb」などと検索すると、同じような内容が出てきますので、確認してみてください。
2008/04/30 @ 10:55
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki情報ありがとうございます。

PowerMac G5 Dualも持っているのですが、OSも同じ10.5でシステムモニタで見てもメモリ容量の見え方も同じ(パイグラフのメモリ容量が同じ)だったので4GB使えていると思っていました。時間がある時に調べてみます。


2008/05/08 @ 03:47
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki時間は無いのですが調べてみました。

MenuMeterをインストールしてみると1GB分見えてないようですね。残念。メモリメーカも表示に騙されていた、ということなのでしょう。PCだとBIOS設定で4GB全部認識できるようになる物もあるのですけどね。積んでいるチップセット的には4GBのメモリを搭載するのは問題ないはず(後期型ってチップセットが違うのかな?)ですが、EFI等の制限(固定的にI/O等を上位1GBに割り当てているため等)で変更出来ないのかもしれないですね。
# 3.5GBくらい利用できればもったいない感も
# 和らぐのですけどね。

メモリが安くなり、+1GBでもかなり違うので特に仮想環境を使っている方にはお勧めであることには変わり在りません。



しかし、利用可能なメモリ容量が違うならAppleはサイトから型番を削除すべきではないですね。

ところで、検索して気になったのですが3.5GB,3GBとか2GBとかまでしかメモリが利用できないのは32bit OSの制限と勘違いされている記述が多かったです。通常はチップセットやファームウェア、OS仕様の制限でメモリが使えなくなっています。IntelのCPUの場合、32bitモードでも物理メモリ拡張(PAE)を利用すれば48bit36bit(だったかな)まで物理的なアドレス空間が拡張できます。WindowsServerの32bit版、Linux PAEカーネルは32bit OSですが、4GBでも8GBでも16GBでも利用できます。

チップセットとOSがサポートするメモリ容量は以下のページが参考になります。
http://pc.watch.impress.co.jp/docs/2007/1127/hot517.htm



Appleのサイトを見てもMacBookのチップセットは分かりませんが、やはり前期型は945, 後期はG31って事なのかも知れないですね。これなら話は分かります。
2008/05/08 @ 04:02
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiノートPC用のチップセットだと945GMか965GM(G31は無い、というかよく見たら新しいのに4GBしかメモリ空間をサポートしてない上、ノートPC用は無い)という事になりそうです。2007前期は945GM、後期は965GMだと思われます。

http://compare.intel.com/pcc/showchart.aspx?mmID=28117,22210&familyID=7&culture=en-US

同じサポートメモリ量でも945はアドレス領域が本当に4GB、965はインストールできるメモリは8GBでもアドレス自体は64GB(だったかな)まで拡張されている8GBのメモリを載せてもI/O領域として物理メモリが配置されているアドレスとは別の領域を割り当てられます。

と言うことで前期モデルで全てのメモリを利用するのは無理です。
これはWindows PCにも当てはまりますが、32bit版XP/Vistaなら3GBちょっとまでしかOSで使えないのであまり関係ないですね。


2008/05/08 @ 10:35
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki/.Jに以下のような投稿がありますね。

Windows XPで4GBを超えるメモリを活用するRAMディスクソフトが話題に
http://slashdot.jp/hardware/article.pl?sid=08/05/12/0840229

起動オプションにPAEって使えるんですね。どうせならOSでメモリが使えるようになっている方がよいと思うのですが。
2008/05/13 @ 09:30

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: ogijun [訪問者]
ogijunQuickTimeはiTunesにとってはWindowsとMacの差異を吸収するAPI集として機能していますから、抱き合わせを止めるのは難しいでしょうね。
独立してインストールしない形にすれば形式上は見えないようにできるかも知れませんが、そのときはiTunesに問題が引き継がれるだけでしょう。
なのでWindowsにQuickTimeをインストールしないためには、Macを買うのがいいと思います。
2008/04/21 @ 00:44
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。仕様的に難しいのですね。

> WindowsにQuickTimeをインストールしないためには、Macを買うのがいいと思います。

これはウケました。
iTunesはMacで使った方が自然な感じがすると思うのでMacを買うオプションもありかも知れません。
2008/04/21 @ 01:17

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: セキュリティ脆弱性 [訪問者]
セキュリティ脆弱性> PHPで報告されていたような問題がセキュリティ脆弱性して多数レポートされるようになるのではないか、と予想していました。

Python のキュリティ脆弱性レポートが増えなかったりしたら、それこそ PHP 立場ないね。
2008/04/14 @ 11:36
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki- セキュリティ研究家が研究するのはgoogleサービス影響するモジュール等が対象になること(かなり機能が限定されている)
- pythonにはPHPのセキュリティ問題として多数レポートされている、ファイルセーフ機能が無いこと

などから幾つか出てくると思いますが、どんどん脆弱性が出てくる、といった状況は予想していません。その辺りは誤解の無い様に。

Googleのサービスでは、さすがに危険すぎるのでファイルやメモリにアクセスできる機能は全て無効になっており、突きどころも少なくなっています。これも脆弱性のレポート数に影響するだろうと思います。

このエントリの脆弱性のように基本の「き」ができてないような脆弱性がある、ということは他にいろいろある可能性が高い、と推測するには十分だと思います。
# 実際、画像ライブラリにも任意コード実行が可能な脆弱性が最近
# 見つかっています。あまり使われないライブラリだそうですが
# 言語コアとして添付されている物だったと思います。

研究対象としてはGoogleのサービスを攻撃できる脆弱性が最も面白いとは思いますが、例によって内部仕様は公開されていません。これが理由であまり研究対象にならない可能性もあります。どうなるか注目です。

追記:日本語が変だったので編集しました。
2008/04/15 @ 03:40
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで、PHPは基本の「き」が出来ていた、とは考えていません。

例えば、記憶に新しいところでは、PHP 5.2からリクエストの処理がRFC準拠ではなくなり、Perl/Python/Javaと同じ仕様になった部分があります。(ヌル文字の取り扱い)これにより、mod_securityによるセキュリティ対策が簡単にバイパスできるようになってしまいました。

Perl/Python/Javaアプリは最初からリスクがあったのですが、以前はより安全であったのにPHP 5.2からリスクを追加するような仕様変更を行うのは基本を守っていない、と考えられても仕方ないです。

# 当然ですが、このmod_securityの問題
#(本来は言語/アプリの問題なのですが)
# は既に対策済みです。

要するにみんなセキュリティ対策が万全ではないのです。開発者はあまりセキュリティの事は考えてない、と思っておく方が安全です。
2008/04/15 @ 03:52
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 発者はあまりセキュリティの事は考えてない、と思っておく方が安全です。

これも誤解を招きそうな書き方ですね。

「セキュリティの事を考えてない」という事はないとは思いますが、「セキュリティに対する影響が考慮不足」だったり、「分かってはいるけどリソースが不足」であったり、「知ってはいたが単純ミス」があったりする事を織り込んで対処する方が安全であるし、そうあるべきだと考えています。

具体的には「脆弱性がある事を前提にアプリケーション/システムを構築/運用する」する事が大切だ、ということです。クロスサイトスクリプティング(スクリプトインジェクション)限定ですが、ちょうど技術評論社のサイトにスクリプトインジェクションに脆弱性であった場合でも被害を最小限するTIPS等を記事として連載中です。

http://gihyo.jp/dev/serial/01/php-security

2008/04/15 @ 17:48

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiTSearch2 日本語でググっても、まだtextsearch-jaが全然ヒットしないので微力ながら検索結果上位になるようエントリを作ってみました。
2008/04/06 @ 14:37

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki「脆弱性が頻繁に発見されるアプリケーションを利用しない」と「デマを信じない」は矛盾するのでは?と思った方がいるかも知れません。「PHPは脆弱性がたくさん報告されてるでは?」と思われた方も少なくないかも知れません。

http://gihyo.jp/dev/serial/01/php-security/0004

に簡単に原因をまとめています。

言語の本体部分の脆弱性はそれほど多くありません。最近ではprintf系関数のフォーマット文字列攻撃が可能であった事くらいが思いつきます。これも厳密にはstandardと呼ばれるビルドオプションで無効にできないモジュール関数ですが、standardモジュールはPHP本体といって構わないでしょう。standardモジュールに含まれる関数でhtmlentities/htmlspecialchars関数に対する不正な文字エンコーディングを利用した攻撃にたいする脆弱性も最近修正(
PHP5.2.5)されています。これも本体といって差し支えないかも知れませんが、他の言語ではこの種の関数は「言語本体」には分類されない関数でしょう。
# 他の言語はエンコーディング攻撃は大丈夫なのか?
# と心配になります。Ruby 1.9はかなり厳格にエンコー
# ディングを取り扱っているので大丈夫そうな気がし 
# ますが誰も調べていないような気が...

モジュール関数で多く報告されるsafe_mode, open_basedir関係のセキュリティ報告はフェイルセーフ機能に対する報告です。Javaのように全ての機能が完全にSandbox化できる場合もありますが、スクリプト系言語のVMレベルで同じ機能を実装した、同じような不具合が多数報告されると予測できます。

モジュール関係では意図的なコードでメモリに直接アクセスできる場合もセキュリティ問題、として報告されています。これはPHPが共有環境のWebサーバモジュールとして利用されている事が多いので、直接メモリが参照できる事例のほとんどがセキュリティ問題として報告されています。この基準を他の言語のモジュールに当てはめるとかなりの数の「脆弱性」が発見できると思います。

PHP本体のセキュリティ上の最大の問題はPHPのリリースポリシーです。「PHPはセキュリティ的にダメだね」と言いたい場合、ここが最大の攻撃箇所かと思います。

2008/03/23 @ 07:47
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakihttp://michilu.com/django/doc-ja/fastcgi/
Django を動作させる構成として 現在推奨されている のは, Apache と mod_python の組合せですが,多くの人々が共有ホスティングサービスを使っており,そこでは FastCGI や SCGI, AJP といったプロトコルしか選択肢がない場合もあります.また,構成によっては, FastCGI は mod_python よりも安全であり,パフォーマンスの点で mod_python をしのぐ場合もあります.

pythonではmod_pythonよりFCGIが多いようですね。mod_pythonではPHPより低いセキュリティしか期待できませんから当然です。
2008/03/24 @ 09:56
コメント from: takeshi [訪問者]
*****
takeshi詳しい解説参考になります。

こまかいところですが一点だけ。
> 秘密鍵には必ず推測が難しいパスフレーズを設定します。
これはサーバの堅牢化というよりも管理用クライアントの問題になるわけで、それを言いはじめると「管理用クライアントの安全性も大事だよ。」という話をしなければいけないような?
上記引用文の意図は「その端末で変なサイトにアクセスしたり/端末自体が盗難されたりして、秘密鍵を盗られたら大変なことになるよ。」という話でしょうか?
2008/04/25 @ 11:49
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiセキュリティはシステム全体で維持しなければならないので、クライアントや物理的なセキュリティ対策、ユーザの教育は非常に重要だと考えています。

> これはサーバの堅牢化というよりも管理用クライアントの問題になるわけで、
> それを言いはじめると「管理用クライアントの安全性も大事だよ。」という
> 話をしなければいけないような?

はい。おっしゃる通りで、クライアントの安全性は非常に重要だと考えています。非常に重要ですがまとめて書くのは難しいです。せめてSSHのパスフレーズくらいは難しい文字列にした方がよいとだけ書いています。私がクラッカーならクラックに成功したPCにはSSH秘密鍵がシステム上に無いか調べ、アクセス履歴等から侵入可能なシステムがないか確かめる可能性は高いです。

クライアントサーバ型のシステムではサーバ側の安全性を確保しても、クライアントにキーロガー(最近ではスクリーンショットや画面の動画も当たり前になって、スクリーンロガーになってますが)などでパスフレーズが分かってしまう可能性もありますが....

私は秘密鍵をできるだけ使い回さないようにしていますが、多くの方が秘密鍵を使い回していると思います。自分のPC, 会社のPC, 会社のサーバなどなど... パスフレーズ無しだと自分だけの秘密鍵と言えない状態の秘密鍵も少なく無いのでは、と心配しています。

後非常に気になっているのはWebアカウントのパスワードの使い回しです。私は同じパスワードは二度と使いませんが、多くの方は複数のアカウントでパスワードを使い回していると考えられるので非常に気になっています。

2008/04/26 @ 15:51

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki

言語を替えると安全になる、という議論はあまりに短絡的です。具体的に議論しないと意味がありません。

PHPは仕様的に脆弱になる部分があります。仕様が原因で脆弱になる例

  • - 組み込み型の言語仕様
  • - リモートファイルインクルード(デフォルト無効)
  • - 未初期化セッションIDの受け入れ
  • - 透過的セッション管理(デフォルト無効)

などです。中でも組み込み型の言語仕様はローカルファイル読み込みに脆弱なアプリケーションでは致命的な問題です。PHP以外の言語でも、例えば、画像ファイルにコードを埋め込みスクリプトを実行する攻撃は可能ですが、PHPは組み込み型であるためほとんど制限無く任意スクリプトが実行できます。

open_basedirを利用することによりリスクは低減できますが、仕様的に脆弱であることには変わりありません。

以前、PHPにも<?php ?>タグ無しにスクリプトを実行できるようにする事が議論されたことがあります。残念ながら実現しませんでした。

未初期化セッションIDの受け入れも非常に重大なセキュリティ上の問題です。これについては別の機会に解説したいと思います。

仕様以外の問題にリリースの問題もあります。PHPは言語とモジュール(ライブラリ)が一体となってリリースされています。言語とモジュールは別に管理されている方がアップグレードが行い易くなります。リリース通りにアップグレードしようとすると非常に多くの変更が含まれるモジュールのアップグレードも行わなければなりません。変更量が多くなるとアプリケーションへの影響が把握しづらくなります。

PHP本体とモジュールはAPIさえ合っていれば自由に組み合わせることが可能です。セキュリティ維持の為、新旧組み合わせて利用する事は、PHP以外の言語では当たり前のように行われています。PHPでは、あまり一般的に行われているとは思えません。

PHP4のサポートが終了し、PHP5に移行しようとされている方も多いと思います。現在PHP5.3が開発中です。最後のPHP5リリースになれば良いと思っていましたが、PHP5.4もリリースされる事は確実な状況になってきています。この調子だとPHP5.5もリリースされるかもしれません。企業ユーザにとってはあまり好ましい状況ではありません。

PHPにはダメな所も多いので「PHPより○○○○の方が良いよ」と言う場合、具体的に比較すれば良いと思います。

2008/03/21 @ 04:19

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: 諸手をあげて同意 [訪問者]
*****
諸手をあげて同意私も記事を読んで、同じ様に思いました。
どのような言語を使うにせよ、セキュリティ対策の知識を持っていなければ意味がありませんね。
2008/03/14 @ 14:16

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki「脆弱性があっても攻撃なんてあまりされない」とは言っていられないレベルです。 お隣の中国が悪意のあるサイト超大国というのも気になります。言語/システム障壁が有効に機能しているうちに対策しないと、日本のサイトも危ないサイトであふれるかも知れません。
2008/02/19 @ 03:30

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: mrkn [訪問者]
*****
mrknお会いできてとても感激しました!そして,発表内容もとても参考になりました.とても貴重なお話を聞くことができてうれしい限りです.ありがとうございます.
2008/02/18 @ 20:27

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

5 コメント

つきみやきりゅ。個人的には
・新プロジェクト
 PHP4系でやる意味はもはや無し。PHP5.2.xスタート。
・現在PHP4.4.xで動いているプロジェクト
 5.3.xのリリースを待って移行

かなぁと思ってるんですが、2点ほど不安なことが。
・PHP5.3.0の提供時期
 なんか結構揉めてる印象でいつになるやら。
・何を持って「実用レベルに達してる」と言うか
 毎回悩みます。
・SRAのサービスを使うにしても・・・
 仕方ないとはいえ「可能であればバックポートした修正パッチを提供します。」と保険がかけてあって
 じゃあ、不可能な場合はどうするの?と不安が。

うーんうーん。
2008/02/05 @ 08:29
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiご無沙汰しております。

>・新プロジェクト
> PHP4系でやる意味はもはや無し。PHP5.2.xスタート。

もちろん新規プロジェクトをPHP4で始めるのはナンセンスです。(本文に追加しました)

アプリケーションはそのままでPHP4からPHP5に移行するだけのユーザの場合、コストをかけてPHP5に今移行するより、アプリの改修時などのタイミングに合わせてPHP5に移行するのが最良だと思います。
開発会社としては「単純にPHP5に移行するだけではもったいない。もう少し予算を付けて新システムリリースできるよう新機能も追加し、拡張性や安全性向上の為にコードのリファクタリング等も盛り込みましょう」と提案する方が良いと思います。発注側にもメリットがある提案だと思います。

> かなぁと思ってるんですが、2点ほど不安なことが。
>・PHP5.3.0の提供時期
> なんか結構揉めてる印象でいつになるやら。

何時になるかは今の所だれも分からない、と思います。
PHP6 - Unicode = PHP 5.3
という構図ある以上、個人的には、少なくともPHP6のα版くらいはリリースされないとPHP 5.3のリリースは無いはず、と思っています。

となるとPHP6アルファ版は何時?と言う話になると思いますが、開発している方の気持ちは遅くとも年内だと思います。

実用になるのは2年くらいかかるかも知れないと考えていると安全かと思います。取り合えずその2年間はPHP4アプリはそのままにして、新規案件だけはPHP5.2で作っておく、のが妥当な選択かと思います。2年経ってもPHP4のままの物はPHP5へ移行するのが良いかと思います。
# 全てのユーザが取れる選択肢ではないですが
# 同じサーバでPHP4とPHP5を動かす方法には
# - CGI版(FCGIが好ましい)とモジュール版の両方を使う
# - ポートを変えて両方を動作させ、プロキシで透過的にアクセスさせる
# などがあります。こうすればサーバリソースも無駄になりません。



>・何を持って「実用レベルに達してる」と言うか
> 毎回悩みます。

少なくともPHP 5.3.1までは待つ方が良いかと思います。(本当はPHP 6.1がリリースされるまで待つの吉かと思っています... PHP 5.0の惨状をご存知の方は良く分かる話だと思います。PHP 6.1がリリースされてもPHP 5.3のままである可能性は非常に高いと思います。もちろん最新版がPHP 5.4になっている可能性も捨てきれませんが、PHP 5.3からPHP5.4への移行は比較的容易になるだろうと予想できます) やはり自分でテストしてみるのが一番だと思います。現状のPHP 5.2でも仮想ホストを利用している環境では、ini設定がおかしくなる問題があったりしますが、このような問題は実際の運用環境に近い状態で検証しないと分かりません。
# こういう事があるので企業ユーザはPHP4からPHP5への移行は
# 難しいですよね... オープンソースなら取り合えずリリース、バグ報告
# はユーザから、で良いのですけど。


>・SRAのサービスを使うにしても・・・
> 仕方ないとはいえ「可能であればバックポートした修正パッチを提供します。」と保険がかけてあって
> じゃあ、不可能な場合はどうするの?と不安が。

専用の攻撃コードをPHPスクリプトとして実行しなければならないような問題は別として、リモートコード実行ができるようなバグは何があっても修正パッチが出るはずです。
実はバックポートだけでない、パッチも既にあったりします。このあたりは今までのPHP4のサポートよりパッチが早くてより安全だと言えると思います。

2008/02/05 @ 09:54
つきみやきりゅ。フォローありがとうございます。
>PHP 5.0の惨状をご存知の方は良く分かる話だと思います。
これは自らが踏みまくってるので何とも言えない・・・(苦笑
流石に5.3はあの時ほど酷くはならないかなぁとは思うものの
PHP4から移行しようと思うとやっぱりリスキーですね・・・。
(何よりシステムの移行をしたあと、問題がないことを証明するのが難しい)

>実はバックポートだけでない、パッチも既にあったりします。
>このあたりは今までのPHP4のサポートよりパッチが早くてより安全だと言えると思います。
なるほどー。
出来たらそういうことはもうちょっとアピールしてほしいなぁ、と感じます。
2008/02/05 @ 14:04
コメント from: かのみ [訪問者]
かのみセキュリティホールmemoから来ました。

>PHP6 - Unicode = PHP 5.3
>という構図ある以上、個人的には、少なくともPHP6のα版くらいはリリースされないと

この間、Zendジャパンのセミナーにいってきたのですが、5.3にUnicodeが入るようです。
6のテスト版が5.3って感じかもですね。
2008/02/06 @ 11:29
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiPHP 5.3にはUnicodeサポートが入るのではなくICU機能のサポートが入る(予定)です。

少なくともPHP開発者の間でUnicodeサポートと言うと、ZendEngineのUnicodeサポートの事を意味します。

ZendEngineのUnicodeサポートはICUを使って実装されていますが、ICUの別の機能(ロケールやエンコーディング変換)などはZendEngineと関係ない部分もあります。これらの部分がPHP 5.3にもバックポートされる予定です。

ですから、UnicodeサポートがPHP 5.3に入る、と言う表現はあまり適切でないと思います。

PHP6のUnicodeサポート

- binaryの導入
- string型の場合、文字列がUnicodeとして扱われる
- 互換モードの提供
- string型がUnicode文字列の場合、モジュール関数が文字列をUnicode文字列として認識するように変更
 (代表例がstrlen)

といったところが代表的な違いです。ZendEngineのバージョンが異なるので、当然ですがこれらはPHP 5.3では実装されません。
2008/02/06 @ 12:29

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki「脆弱でも攻撃されることはまれ」と思われている方も少なくない、と思います。

現在は営利目的の攻撃が当たり前なので、基本的にこれらの攻撃はほどんと表沙汰になりません。
http://blog.ohgaki.net/linux-apache
http://blog.ohgaki.net/ftp-cpanel
などの様にかなり自動化され、さらに普通に管理していただけではほとんど気が付かないような攻撃もあります。この攻撃では少なくとも1万台以上が感染しているとされています。マルウェア配布を行っているサイトは常時数十万ドメインあると言われています。

全体数からみると「攻撃されるのは、まれだ」と言えるかも知れませんが、これらの数字は氷山の一角でしかない、と考えた方が良いです。日本語サイトの場合、言語の壁があるのであまり実感がないのかも知れません。しかし、中国などからの自動化されたSQLインジェクション攻撃などは日常です。

先日、高校生が3600万円相当のゲーム通貨を不正に取得したニュースがありましたが、試しにやってみたら10分くらいでできた、そうです.... RMTが当たり前なご時世なようですがセキュリティに気を付けてないところはこの程度なのか.... と思っていまいます。

Webアプリケーションのセキュリティ対策は難しく考えられ過ぎです。プログラミングをきちんと習得することに比べてれば、実用レベルのセキュリティ対策の知識を身につけるのは容易です。これについては別エントリで書く事にします。
2008/02/04 @ 09:11

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki

クロージャが当たり前になる頃にはPHPもクロージャ(ブロック)をサポートするかも知れません。

コミットされたか確認してませんが、lambdaは日本人の方がパッチを書いています。多分コミットされる(された?)でしょう。

ところで、人は時々極端な意見を書きたくなるものです。私も先日「To宛のメルマガは全部SPAM認定します」と書いたばかりです。行間を読めないかも知れませんが、行間を読むと言いたい事は理解できるのではないか、と思います。なので、まつもと氏が書かれている意図も実は私自身は割と正確に解っているのではないか、と思っています。

PHPの標準ライブラリ関数は命名規約の変更もあったので、名前がバラバラだとか、場当たりで作った関数が他の関数と整合性が取れていなかったり、とか色々問題があります。私もダメ過ぎるとは思います。

PHP5の開発段階でPHP5でおかしな所は直してしまおう、と提案したことがあります。様々な思惑などから実現しませんでした。(Zend的にはPHP5の普及を早く進めたいとか、いろいろ)Python 3000の様なバージョンアップをすべきなのですが...

PHPがダメ過ぎると言われている原因は、開発で中心的な役割をになう開発者が不在だからです。PHPはある意味、究極のバザールモデルで開発されています。バザールモデルで開発しているからダメとは言えないのはLinux vs. FreeBSDの開発手法で証明されています。しかし、究極のバザールモデルが衰退の原因となる可能性は否定できません。
2008/02/03 @ 07:10
コメント from: Andy [訪問者]
AndyPHPの問題点として、大垣さんが以前The Month of PHP bugsで書かれていたように、PHPのセキュリティホールが放置されていたり、開発者だけ理解していて一般のプログラマに伝わっていなかったりすることがあると思います。

バイナリセーフでない文字列処理関数などをそのままにしておくのも問題だと思いますが、仮にそれは仕様だからということで修正しないのであれば、PHPのマニュアルで、安全に動かすための書き方といった、いわゆるベスト・プラクティスを紹介するべきではないかとも思います。

Railsで書いてもセキュリティ上問題があるプログラムは簡単に作れますが、書籍やマニュアルなどで注意が書かれていることが多いように感じます。そのあたりのセキュリティ問題に対する態度の違いというのが両者に対する評価の違いになってきていると思います。

なお、初心者の教育のためにはスタティックな言語の方が向いているという点については同感です。
2008/02/09 @ 22:16

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

6 コメント

コメント from: mrmt [訪問者] メール
**---
mrmtMXレコードがなくともAレコードがあれば正しいメールドメインですよ。
2008/01/30 @ 01:53
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki本文の記述は確かにちょっと不親切ですね。コメントありがとうございます。

もちろんAレコードがあれば十分とは知っています。

意図的にAレコードを除外しているのは

- ISPのメールサーバでMXレコードが定義されていないサーバは無い(はず)
- メールホスティングなどのサーバもMXレコードが無いサーバは無い(はず)
- 普通の組織が設置しているメールサーバもMXレコードを定義していないサーバは無い(はず)

だと思われるからです。さらに、

Aレコードで十分=ダイナミックIPのメールサーバでもOK

となってしまうからです。

ダイナミックDNSで常時運用しているメールサーバがあります。リスクを承知の上で個人的な用途として利用するには問題無いでしょう。しかし、今回のエントリの意図は「正しいメールアドレスか確認」することにあります。AレコードだけでもOKにすると、IP非固定のサービスから一時的に使えるメールアドレスを入力し、認証を取得する事も可能になります。

この様な状態は「正しいメールアドレスか確認する」という意図を達成できません。実際のサービスでもMXレコードが引けるか確認するだけで十分です。

あまりないとは思いますが、運用されているサイトユーザの多くがダイナミックDNSでメールサーバを運用していて困る、場合にのみAレコードが引けるだけでも正しいメールアドレスとするのが良いと思います。

この事を書いていないのは不親切と言えるので本文に追加しました。

ところで「ダイナミックDNSサービスでメールサーバを運用するリスク」とは、メールがスパムとなってしまうリスクの事です。今のスパム検出システムはIPアドレスブロックからダイナミックIPからスパムとみなす事は稀ではありません。MXレコードが無いドメイン部分を持つアドレスもスパム認定される原因になります。スパム全盛のこの世の中です。まっとうなメールサーバでMXレコード無しのAレコードだけの場合は設定ミス以外はほどんど無い、と言えると思います。

# ところで、ダイナミックDNSでもMXレコードを付ける事は可能です。
# ただしIPアドレスからスパム認定される可能性は排除できません。
2008/01/30 @ 04:23
コメント from: takano32 [訪問者] メール
***--
takano32あれ?一文字目に数字とか許していいの?
現実問題として許さざるを得ないのはわかるけど。
2008/02/03 @ 23:06
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiメールシステムは双方のシステムが送受信できればOK、と割り切っても良いのではないかと思っています。

現実的にはどうどうとRFC違反をしているDoCoMoやAUもあります。真面目にチェックするのが馬鹿らしいのでチェックしていません。


普通は

メールアドレスが正しい=ユーザへ送信できユーザが受信できる

でも良いと思います。ユーザからすると受信できないメールアドレスを入力しても意味がない(認証できない)のであえてチェックする必要もないと考えています。

しかし、Microsoftの様に強権は発動して明らかなRFC違反メールを使えないようにするのも悪くない、と思っています。できるできないは別にして、本当は全てのサイト/メールサーバが明らかなRFC違反メールアドレスを使えないようにするのが一番良いと思っています。
2008/02/04 @ 07:23
コメント from: 通りすがり [訪問者]
**---
通りすがり>普通の組織が設置しているメールサーバもMXレコードを定義していないサーバは無い(はず)

いくらでもありますよ...
2008/02/04 @ 13:37
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>>普通の組織が設置しているメールサーバもMXレコードを定義していないサーバは無い(はず)
>いくらでもありますよ...

大学などならいくらでもあるかも知れませんね。大学は普通の組織ではない(?)と定義した方が良いのかもしれません。
きちんと設定する様にシステム管理者に頼むのが一番かと思います。(正規のメールサーバを使えばMXも付いていると思います)

今時でも外部にメールを送受信するサーバが決まっていなかったりするのですか?今の国立大学でも。

きちんとした企業/組織なら外部と送受信できるメールサーバを勝手に設置することは、普通はできません。

MXレコードがないメールサーバは「普通のメールサーバではない」と言っても、今は差し支えないと思います。

受信できるものいい加減なアドレス(ただクライアントが接続しているだけのダイナミックIPなど)でもなんでも許可したい、場合はAレコードが引けるかどうかチェックすれば良いでしょう。

何度か書いてありますが、MXレコードもないようなメールアドレスは「正しいメールアドレス」と呼ぶにはふさわしくない、と私は考えています。もちろん強制するつもりはありません。
2008/02/04 @ 16:03

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: c-yan [訪問者] メール
2008/01/26 @ 06:02
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiありがとうございます。

なるほど。P2Pソフトにおけるシェアの1/3なら納得できる数字です。ネットエージェントの調査結果をみると1/3なら控えめすぎるくらいですね。
2008/01/26 @ 14:38

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: mrkn [訪問者] メール
***--
mrknセミナーは無料で参加できますよ.
お待ちしております!
2008/01/25 @ 22:30
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

岡山から千歳にいこう、と思っていたのですが価格的に変わらなかったので高松から千歳に行く事にしました。前日の懇親会にも参加しています。よろしくお願いします。
2008/01/26 @ 14:30

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
***--
Yasuo Ohgaki自分で試しにコメントいれてみた
2008/01/24 @ 22:23

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiリンク張り付けだけで不親切だったので本文にも具体的な攻撃方法も追記しました。

このブログシステム(b2evolution)の添付ファイル名はアップロードするユーザが設定できるようになっています。バリデーションしていなければ共有して使っていると攻撃できるのかも知れません。ファイルをデータベースに格納している場合、アプリケーションがファイル名を生成するようになっていると、つまりハンドラに制御が渡るようなリクエストの場合だと、攻撃ができないと思います。フィルタの場合は攻撃できるような気もします。これは普段mod_negotiationは使わないので試してみないと分かりません。

本来ファイル名は利用できる文字をアプリケーションで制限した方が良いと思います。

当たり前ですが、ローカルアクセスが可能な場合、この攻撃は非常に簡単です。攻撃用のファイル名を作るだけです。

共有環境サーバの場合でPHPのsafe_mode/open_basedirにセキュリティを頼っている場合だと、他のユーザのディレクトリに不正なファイル名のファイルを作成できると、他のドメインのセッションを盗んだり、HTTP Response Splittingで可能な攻撃ができるようになります。
# ファイル名の長さに制限があるのでキャッシュ汚染はできない、とは思いますが。

CSRFに脆弱なアプリケーションがインストールされているなら、悪意のあるページ等から不正なファイルを作成させられる可能性もあります。すぐに思いつく例はファイル名の変更/ファイルの移動機能を持つアプリがCSRFに脆弱だと攻撃される可能性があります。
# このブログが脆弱だったりするかもしれません。(未検証)


少なくともCentOS/Fedora系ではデフォルト設定でmod_negotiationが有効に設定されています。
2008/01/24 @ 15:36

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiサーバ側でクライアント側の安全性を保証することは無理ですが、最低限やっておくべき事はやりましょう、ということです。セッションクッキーを利用しないと共有PC等では簡単にセッションIDが盗まれます。

2008/01/24 @ 13:56

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiメールユーザの第5の段階として

- メールを使わなくなる

があります。一時期「メール破産」が流行った事があります。私もyohgaki@ohgaki.netのアドレスは第5段階になっていると思います。(これと第六段階 - メールアドレスを変える/捨てる、も本文に追加)

仕事柄国内旅行が多く、その際に利用する○○トラベル、○○航空、○□○○ネットなどの過去に利用した事がある予約サイトやホテルのサイトからも個人宛で「冬の旅行は」とか個人宛に届きますがいい迷惑です。旅行がしたくなれば自分で勝手に探します。各サイトは週に1回くらいしか送ってこないですが毎週十数通個人宛に送られてくるとうんざりします。

あまりショッピングサイトは使わない方なのですがショップ系のメールもチリも積もればで沢山来ます。取り合えずIDだけ取っておこう、とIDだけ取って使っていないサイトからも沢山きます。

調べていないので個人的な印象ですが、昔はアメリカのサイトでも同じようなものでした。しかし、現在はオプトインで送ってくるサイトが激減していると思います。(もしかして法律があるのかな?) 日本はまだまだです....
2008/01/23 @ 15:10

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

8 コメント

コメント from: 通りすがり [訪問者] メール
通りすがり「迷惑メールを報告」の使い方として、それは正しくないのではないですか?
報告すれば、その結果が他の同一Webメールユーザーにも影響を与えるのではないでしょうか。その事は考慮されてますか?
>今まで自分宛の不必要なメルマガはメールクライアントで迷惑メールとして処理させてきました。
この対応でしたら当人にしか影響がないので問題ありませんが。

しかしそもそも、不必要なメルマガでしたら購読解除するのが第一でしょう。
また、購読したいが宛先を個人宛にして欲しくないのでしたら、発行者にそう申し出るのが筋かと思います。「メルマガの宛先を個人アドレスにするのは失礼」という認識がないまま発行しているケースも多々あるのではないでしょうか。私はメルマガがDMと同じだという認識はありません。大半のメルマガは自分から「送ってください」という意思を表明して送ってもらうものですから。

「迷惑メールを報告」は、スパムメールに対してのみ使用するものだと思います。あなたにとって迷惑なメルマガ、メーリングリストが、他人にとっては楽しみにしているものかもしれませんから。
2008/01/17 @ 12:05
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。頂いたコメントと同様の考えの方も沢山いらっしゃることでしょう。

> 購読したいが宛先を個人宛にして欲しくないのでしたら、発行者にそう申し出るのが筋かと思います。

宛先に個人アドレスを設定しない方がメールシステムとしては負荷が軽減できる可能性があるところを、送信側ので勝手な都合でメールシステムと送信先に迷惑な方法で送信しています。受信者が迷惑だ、と思われるような送り方をする方が間違いるのではないでしょうか。また、自分に不利益にならない限り送信者は仕様を変更しないでしょう。発行者にいちいち連絡しても意味がないと思います。
# 結局は経済論理で動いていますから。

例に上げているWebメールシステムは私一人がスパム扱いしても直ぐにシステム全体としてスパムとして処理される訳ではありません。しかし、メルマガを個人アドレス宛に送信しつづけているとシステム全体で迷惑メールとして処理されてしまうのも時間の問題だと思います。

一般的なユーザの多くは購読解除も面倒なので「迷惑メールとして登録」をクリックする事は簡単に予想できます。これによりメルマガの発行者に不利益となったとしても自分が撒いた種と言えると思います。

私は自発的にメルマガと呼ばれる物を購読していません。一番迷惑だ、感じている事業者はアマゾンです。広告メールもギフトメールも何もかも個人アドレスに送信してきます。さらに内容がSPAMっぽい物が多く、私のSAPMフィルタの学習機能のお陰で幾つかのギフト券は有効切れになってしまいました。アマゾンはWeb企業としては成功していますが、ログインページがかなり長い間(最近になるまで何年間も)HTTPSでなかったり、と結構でたらめな事をしています。

話を元に戻すと「メルマガ発行者は送信先アドレスをメルマガのアドレスに変更した方が良い」ということです。

送信アドレスを個人アドレス宛にした時期は、スパムメール判定に利用されているベイズフィルタも、Webメールシステムも一般的ではありませんでした。当時は多くのユーザにとって迷惑であっても「個人宛」にメルマガを送信した方が広告効果が高かったでしょう。

今は時代が変わりました。「メルマガの送信先アドレスはメルマガの発行者またはメルマガ自体のアドレス」に設定することが当たり前になるでしょう。
2008/01/18 @ 09:09
コメント from: mrmt [訪問者] メール
mrmt「A さん宛のメールが To: A として送信されてくる」のはごく自然なことでしょう。
「A さん宛のメールが To: foo-ml として送信されてきた」場合、その方のリテラシによっては、何がおこっているのか理解できないかもしれません。

To: A として直接配信をしたほうが MUA などの spam filter にひっかかりづらいかもしれない、というお話は理解できます。ほかのご主張も理解できます。
でもそれらが、「A さん宛のメールが To: A で送られてくる」という、本来ごく自然なふるまいを覆すべきほどのものとは思いがたいです。
2008/01/18 @ 15:22
コメント from: amazonrider [訪問者] メール
amazonrider> 宛先に個人アドレスを設定しない方がメールシステムとしては負荷が軽減できる可能性があるところを、送信側ので勝手な都合でメールシステムと送信先に迷惑な方法で送信しています。

すみません,この件の理屈といいますか仕組みが理解できずにいます。

・「メールシステム」とは具体的にどこの何を指し示しているのか
・なぜTo:が個人アドレスではないほうが,その「メールシステム」の負荷が軽減されるのか
・送信先でこうむる迷惑とは何なのか

お教えいただけますでしょうか?
2008/01/19 @ 01:24
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> でもそれらが、「A さん宛のメールが To: A で送られてくる」という、本来ごく自然なふるまいを覆すべきほどのものとは思いがたいです。

一日に数十通くらいのメールが配信されるなら我慢もできると思いますが、私の場合は明らかなSPAMを除いてもかなりの数になります。その中には本来、「私だけ」に送信された重要なメール、も含まれますが以前に利用したショッピングサイト等からも「多数に送信」されているメルマガ等が多く含まれています。

最近では「捨てアド」と呼ばれる、いらないメールが送信されるかもしれないショッピングサイト等を利用する場合、「捨てアド」を利用するのが当たり前になっています。実際、「捨てアド」が無いと長い間同じメールアドレスを利用するのは苦痛になってきます。苦痛になるのは「業者が自分勝手な理由で個人宛にメールを送るから」と言えると思います。

昔からのEメールユーザ(Internet E-Mailは使い始めたのが1990年だったかな?)には「バルクメール」(大量のアドレスに送信するメール)は個人宛のメールでは無い、といった認識が当たり前でした。ブログに書いたようにほんの4,5年前までは「バルクメール」!=「個人宛メール」でした。「本来ごく自然なふるまい」に思えるのかも知れませんが、利便性を考えると不自然な送信方法と言えると思います。

# スパマーが大量のバルクメールを送信し始め、それに対抗するため真っ当なDM送信元
# が個人宛に送り出し、スパマーも個人宛に送り出した、と言う側面もあります。
# 個人宛DMが増えてかなり不満を持っているのでこのブログにも記事がありますね。
# 以下の記事はMLの場合について書いています。
# http://blog.ohgaki.net/index.php/yohgaki/2006/06/29/mla_rar_a_a_la_ba_fa_pa_ra_ia_fa_la_ca_a



> この件の理屈といいますか仕組みが理解できずにいます。

メール関係のRFCに記述されています。ご興味があるか場合はRFCを参照されるのが一番だと思います。一般的な開発者であれば「そうなんだ」程度の理解でも構わないと思います。これだと何も書いてないのと同じなので、簡単に説明するとSMTPでは送信先のメールボックスはメールヘッダに関係なく設定できます。つまり、同じ内容(ヘッダと本文)で同じメールサーバで処理されているなら複数ユーザ宛に一括処理できます。しかし、To:に別々のアドレスが書かれていると別メールとして個別処理せざるを得ません。メールを送信・受信するプログラムがサポートしていない場合、同じメールでも意味が無かったりします。ですから「可能性がある」と書いています。

今思いついたのですが「迷惑メール」ボタン以外に「バルクメール」ボタンを作れば便利な気がしてきました。迷惑なバルクメールでも必要なものもあったりします。「バルクメール」ボタンは結構いい考えのような気がします。どうでしょう?

2008/01/22 @ 11:13
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで、誤解の無い様に書いておきますがいわゆるメルマガを自分で購読した事はほとんどありません。

ほとんどが何かのサービスを利用してその時にメール送信云々のオプションなどを設定しなかった為、送信されてくるメルマガがほとんどです。

「自分で購読した」事になるのかも知れませんが、感覚的には「勝手に送ってくるようになった」と思えてしまいます。
# 確信犯的にしているサイトも多いです。

頂いたメールのに感覚的には「自分で購読した場合、自分宛の方が自然に思える」とのご意見も頂いています。この意見にも納得できる部分はあります。しかし、自分宛でなければ困る理由が見つかりません。

根本的な原因は送信先アドレスが送信側の意図で決定されている事にあるような気がします。
2008/01/22 @ 16:49
コメント from: mrmt [訪問者] メール
mrmt引用の見やすさのために fold しています。

> 一日に数十通くらいのメールが配信されるなら我慢もできると思いますが、
> 私の場合は明らかなSPAMを除いてもかなりの数になります。

私はお客様に発行した数十万個のメールアドレスを運用するサービスの
postmaster であり、お客様に業務上の opt-in 配信も行いますし、会社の
メールサーバ管理者でもあります。

また、自分が関係する Web サイトやオープンソース活動を通して、私のメール
アドレスはWeb上いたるところに書かれており、結果、毎日千通オーダーで
SPAM を受け取っています。

つまり、公私ともに大量のSPAMを受け取り、かつお客様やメールサーバに対す
る UBE の嵐に対する防衛の戦いも行い、逆にオプトイン配信も行う立場です。

> 昔からのEメールユーザ(Internet E-Mailは使い始めたのが1990年だったか
> な?)には

私は比べると使いはじめが遅くて 1992 年で、とはいえまだ日本国内の多くが
junet の uucp ネットワークで結ばれていたころですが、

> 「バルクメール」(大量のアドレスに送信するメール)は個人宛のメールで
> は無い、といった認識が当たり前でした。ブログに書いたようにほんの4,5年
> 前までは「バルクメール」!=「個人宛メール」でした。

そうでしょうか? majordomo, CML, fml などの一般的(だった)メーリングリス
トドライバの仕様とお話が混じっていたりはしませんでしょうか。
「バルクメール」と「メーリングリスト」は違うものを指しているという意識
です。

> 「本来ごく自然なふるまい」に思えるのかも知れませんが、利便性を考える
> と不自然な送信方法と言えると思います。

「To: foobar@example.com」といったヘッダのパタンで簡単にマッチングでき
る、というのがおっしゃる利便性だと思いますが、単にそれだけのようにも思
えます。たとえば「From: info-noreply@example.com」などでマッチングして
も同じだと思うのですがどうでしょう? 企業からのメルマガがうっとうしい、
という場合はこれでいけますよね?

ヘッダ+ボディが同一なメールを大量配信する場合、To: をいちいち指定しない、
すなわち同一のメールをMTAへのワンセッションでなるべく多く配信をかけたほ
うが並列度や効率は一般的に上がるでしょう。To: への差し込み処理も要りま
せん。メール配信者の立場からすれば確かに「To: 全部同じ」のほうがラクで
す。でもおっしゃる「利便性」とは、このことではなさそうです。

また、時代の要請により、配信先メールアドレスひとつづつに、unsubscribe
用の unique な URL をひとつづつ差し込む、エラーのトラッキングが可能なよ
うなんらかの X-Header を仕込む、ひとつづつ unique な Return-Path や
Errors-To (RFC 的には obsolete ですが) を仕込むなどのケアを施して配信す
るのが一般的ですし、望ましい配信水準です。ユーザサポートのコストも考え
ると、これらの手間をかけたほうが結局全体のコストも下がります。

そもそもオプトイン配信でないと、また配信解除の手段を明快に示していない
と「特定電子メールの送信の適正化等に関する法律」に抵触します。まっとう
な企業なら、一通ずつなんらかの差し込みや生成をしつつメール配信しています。

ですので、

> すみません,この件の理屈といいますか仕組みが理解できずにいます。

と書いていらっしゃる方と私もおそらく同意見で、

> 宛先に個人アドレスを設定しない方がメールシステムとしては負荷が軽減で
> きる可能性があるところを、送信側ので勝手な都合でメールシステムと送信
> 先に迷惑な方法で送信しています。

確かに「宛先に個人アドレスを設定しない方がメールシステムとしては負荷が
軽減できる可能性」はありますが、もうそんなのんきな時代ではありませんよ。

もちろん、非商用のMLや、配信できさえすればいいと考える低水準のメール配
信者、UBEの場合は「To: が同一」と「負荷軽減」は結びつくと思いますが、
まっとうなオプトインとそれらを一緒くたに迷惑メール報告において考えられ
ては困ります。

> 今思いついたのですが「迷惑メール」ボタン以外に「バルクメール」ボタン
> を作れば便利な気がしてきました。迷惑なバルクメールでも必要なものもあっ
> たりします。「バルクメール」ボタンは結構いい考えのような気がします。
> どうでしょう?

ちょっとおっしゃる意図・仕様がわかりません。

> ほとんどが何かのサービスを利用してその時にメール送信云々のオプション
> などを設定しなかった為、送信されてくるメルマガがほとんどです。
>
> 「自分で購読した」事になるのかも知れませんが、感覚的には「勝手に送っ
> てくるようになった」と思えてしまいます。

そのサービスがオプトアウト配信だったせいで勝手にメールが送られてきた、
というのなら不快な場合もあると思いますが、上の文章を読む限り、サービス
提供者がきちんとオプトインの了解を求めていたのに、そこをあなたが自己の
責任で解除を行わず、結果、オプトイン了承を得たうえでのメール配信に不快
感を持っている、という解釈も可能です。

仮にそうなら、そこから
* 最初のオプトイン不承諾の手順がわかりづらくて怪しからん
* デフォルトがオプトイン承諾状態になってるのは嫌らしい
というご主張がでてくるのであれば、わかります。

ですが、そこから「宛先が個別云々」の主張が出てくるのは、原因や問題点と、
主張・結論が飛躍してしまっていると思います。

> # 確信犯的にしているサイトも多いです。

例えば営利企業が運営するサービスであれば、利潤を追求するのが存在意義で
すから、ユーザから得られるメリットが最大であるよう作られているのがある
べき姿でしょう。

もちろん、あまり「あさましい」ことをすると結果として顧客が離れるとか、
あまり個人情報(準個人情報)を預からないほうがTCOが低い、などの判断により、
デフォルトではオプトインではないサービスもあるでしょう。でもこれも結局
は目的は利潤の最大化ですよね。

> 頂いたメールのに感覚的には「自分で購読した場合、自分宛の方が自然に思
> える」とのご意見も頂いています。この意見にも納得できる部分はあります。
> しかし、自分宛でなければ困る理由が見つかりません。

いやここはおっしゃる通りですが、ですから、そこから「To: 個人宛なメルマ
ガは迷惑メール報告することにします」というお話が出てくるのは奇妙で乱暴
ですよね、ということです。

オプトインもUBEも一緒くたに迷惑メール報告されては、送信者も、さらに受信
者である一般ユーザのみなさんも迷惑です。

> 根本的な原因は送信先アドレスが送信側の意図で決定されている事にあるよ
> うな気がします。

オプトイン配信許諾を得るときに、「To: 同一アドレス」か「To: あなたのメー
ルアドレス」か選択できるようになっていると良いですかね?
でもこんなの皆さん選べないですよね。意味判らなくて登録やめちゃうかも。

「何かのサービスを利用してその時にメール送信云々のオプションなどを設定
しなかった」かたなど、おそらく面倒でスルーしてしまうことでしょう ^^;


若干繰り返しになりますが、まとめると

* いまや電子メールはコモディティであり、利用者のレベルはさまざまです。
自分に自分宛のメールが届くのは自然ですが、「自分宛」以外のメールが
自分に届くと驚くユーザもいらっしゃいます。ひいてはサポートコスト増大
にもなります。

* 「To: ML」方式なら簡単にパタンマッチできます。ですが To: でなくとも
マッチングできるように思えます。

* そもそも悪質な UBE は、簡単なヘッダのパタンマッチ程度ではとても取捨選
択できません。

* 「To: ML」のほうが配信者もラクだというのは、昔の基準で一部を見ただけ
のご意見にすぎません。

* まっとうに配信されているオプトインメールも含めて迷惑メール報告という
のは、配信者はさておき、その迷惑メールデータベースを利用している全員
の迷惑にもなります。



(実際には「Yahoo!メール」さんなど広く一般的に使われている Web メールサー
ビスでは、各自の一方的な主観で「俺これ気に入らないから迷惑メール! キー!」
という「迷惑な迷惑メール報告」がいっぱいあることでしょう。
これらの入力が、実際の迷惑メール処理のデータベースに、どのように取捨選
択されているのか、技術的にも興味があるところです。)
2008/01/23 @ 08:25
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakimrmtさん、コメントありがとうございます。

私もメールを配信する側の動機などは分かります。利益を求めているから利益追求で合理的なら何でもOKでは困る、といった点では概ね合意がとれる考え方だと思います。

このエントリの意図は「みんなで迷惑メールとしてメルマガを報告しよう」ではありません。そんな事を書いてもユーザ全体に与える影響は無いに等しいです。

個人的にはTo: yohgaki@ohgaki.net で送られてくる余計なメールに辟易していて、ちょうど「迷惑メールを連絡ボタンを押させるな」といった記事を見かけたので少し過激に書いてみました。

本当は受信側に迷惑メールを連絡するように勧めるのではなく、送信側に「迷惑メールに分類されるリスク」をもっと真剣に考えてほしいと思っているのです。

このエントリは他のエントリに比べて1/4ほどしか読まれていませんがコメントが多いのは、メール送信側の方からのご意見が多いからだと思います。

>>「バルクメール」ボタンは結構いい考えのような気がします。
>> どうでしょう?
>
>ちょっとおっしゃる意図・仕様がわかりません。

多数に送信しているメール(バルクメール)が全て迷惑メールではありません。かといって個人宛メールボックスに留まっているのも気分の良いものではありません。

迷惑メールと必要なメールの中間の分類として「バルクメール」ボタンを作ると便利だと思います。

普通のメールクライアントは

-迷惑メールフィルタを適用
-振り分け

といった感じで処理しますが、

-迷惑メールフィルタを適用
-バルクメールフィルタを適用
-振り分け

のように処理すれば個人向けアドレスに送信されるバルクメールが迷惑メールと同様にフィルタに学習させながら振り分ける事ができます。

スパムメールをメールボックスから削除するのと同じ要領なのが便利ではないかと思います。

これはクライアント側の対処ですが、関連したエントリのリンクを一番上に付けておきました。そのエントリにも書いていますがメールを送信する許可を得る際に、どのアドレス宛にメールを送信するかユーザに選択できるようにしたら良いと思います。


> そこから「To: 個人宛なメルマガは迷惑メール報告することに
> します」というお話が出てくるのは奇妙で乱暴
> ですよね、ということです。

確かに、乱暴と言えるかも知れませんが受信者にとってどうでも良いメールをどんどん送ってくる業者も乱暴といえるでしょう。各業者はすこしづつ、1週間に一回などでも、チリも積もれば、で長い時間が経つと大変な事になります。

「個人宛メルマガは迷惑メール行き」というのは極論ですが、私が迷惑メール行きにしようがしまいが、特にGMailのようなシステムの場合(つづきのエントリ参照)、多くのユーザが「迷惑メール行き」にするかもしれない事を認識した方が良い、という事です。

迷惑メール扱いされたくなかったら最低限、配信解除くらいはワンクリックで出来るようにしておけば良いと思います。
# もちろん分かりやすい場所で。
# ハッシュを利用すれば簡単かつ安全に実装できます。
# メール送信は面倒過ぎです。暗号的に処理できないので
# また確認メールに返信する必要があります。しかも、
# そのメールボックスはゴミの山かも知れません。

メール配信を効率的に行う為に同じヘッダ/ボディにするのとユーザトラッキングは別問題です。

ユーザトラッキングの為だけなら個別メールを使わなくても全く同じメールでもある程度は実現できます。通常はその程度でマーケティングのニーズはほとんどかなえられると思います。

非アクティブユーザを検出する事が目的なら各ユーザ毎にカスタマイズしたリンクの作成が必須です。これはプライバシを気にするユーザにはあまり評判は良くないですね。ほとんどユーザは気が付かない、気にもしてない、とは思いますけど。

このエントリを読んで頂いてDM送付をされている方が直ぐに対応されることは無いとは思います。

しかし、気が付いた時には、自分が送信したメールは全て迷惑メール行きになっていた、などという事になってしまう事業者も出てくるのではないかと予想しています。

これは結構致命的ではないでしょうか?「受注確認」など、本当に「親展」として送りたいメールが送信しても迷惑メール行き、そして勘違いしたユーザが怒ってしまい、ブログにはとんでも無い事を書かれて評判が悪くなったり.... といろいろ想像してしまいます。


ところで、メルマガが自分宛に送信されないと違和感が、というご意見は多いようですが

To: megumaga-subsucribers@example.jp

などはダメなんでしょうか? 私は結構自然だと思います。(昔はこんな感じでしたから普通におもえるのかもしれませんが)

subscribersがちょっと難しいようなら

To: merumaga-members@example.jp

とか

To: merumaga-readers@example.jp

ではどうでしょう?

現在のメール環境から考えると、今のうちに手を打つと中期的にはメリットを得る事になるような気がします。

ところで、メール送信システムが対応してさえいれば、送信先を変更するのもワンクリックで変更できるよう実装できます。しかも、非常に簡単に実装できます。

受信側の利便性を考えるなら以下のワンクリックリンクを作ってほしいです。

- 送信解除
- 送信先アドレス変更

解除したら解除メール(当然この場合は個人宛で)を送ってもし誤ってクリックしたならすぐ再購読できるようにすれば良いでしょう。

受信側(お客様)に手間を掛けさせなくても、送信側で親切に対処可能です。

いろいろ書きましたが要点は

DM送信者は受信側の利便性をもっと考慮しないと、しっぺ返しをくらうかもしれない。もっと、受信側の事を考えよう。

と言いたいのです。

# GMailとかワザと検索フィルタを使わせている
# ような気がします。Googleはトラッックバックが嫌い
# なのでbloggerにはトラックバック機能が無いと言われ
# ています。個人宛のバルクメールも嫌いなのかも知れま
# せん。



2008/01/23 @ 15:07

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki少し古いですが、ある方からベンチマーク記事を教えてもらいました。

Database test: Sun UltraSparc T1 vs. AMD Opteron
http://tweakers.net/reviews/649/database-test-sun-ultrasparc-t1-vs-amd-opteron.html

これによるとMySQL 5.1 Betaの性能もあまりよくありません。スケールするようになっていますが性能自体がいまいちです。
http://tweakers.net/reviews/649/5/database-test-sun-ultrasparc-t1-vs-amd-opteron-pagina-5.html

ベータとはいえデバッグコードが多くて速度的に不利、ということでない事はオープンソースなので分かっています。

英語記事ですが結構おもしろい記事なので興味があるかたは是非どうぞ。
2008/01/16 @ 18:04

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Taku YASUI [訪問者] メール
Taku YASUI数GBを超える最近の大容量ディスクなら、mkfs 時に自分で指定しない限り block size 4KB になるはずです。なので、「block size 1KB が標準」という状態で話をすると混乱を招きそうです。

ちなみに、ファイルシステムの block size は tune2fs -l で見ることができます。
2007/12/05 @ 20:31

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: key [訪問者] メール
key文章が知り切れトンボになっています。
興味がある内容なので是非続きを!
2007/11/28 @ 16:22
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiかなり書きかけのエントリでした(汗
まだ書きかけですがすこしづつ追加していきます。
2007/11/29 @ 14:01

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: aoix [訪問者] メール
aoixここ数年前から採用されているICキャッシュカードには有効期限が定められていますよ。
2007/12/04 @ 03:29

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki公開状態にし忘れていたようです。
2007/11/26 @ 08:06

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiドラフト状態で公開を忘れていたようです。
2007/11/26 @ 08:04

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

7 コメント

コメント from: とおりすがり [訪問者] メール
とおりすがりうーん、なんかRPGパターンを勘違いしてないですか?PRGパターンを使ったところで戻るボタンで戻れなくなることはないですが。
 「戻るボタンで戻れなくなる」ってことがどういうことを意味するのかよくわかりませんが、IEで有効期限切れになることならそれこそPRGで解決できることです。
 URLをユニークにするとかほかにも解決方法はあるみたいですが、自分はそっちのほうが気持ち悪いと思うけど。
2007/10/14 @ 04:30
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

ページの有効期限とは関係ないです。
元記事のもう少し先を読むと


What about back button? This works too, it returns us one step backwards, to the page with a form. This form can be refreshed as well. If it was obtained using GET, then user would not see warning message.

Page refresh works perfectly with redirection. We have to do the roundtrip to the browser, but one more second spent for redirection means little for interactive applications.

と書いてありますね。

POST後に「HTTPリダイレクト」して結果ページを出力するページで「戻る」ボタンで戻れないページを結構よく見かける(特にJavaの場合に多い気が)ので気になっていますが「間違ったPRGパターンの実装」と考えよい、と言う事?

このPRGパターンという名前の方法(実はいままで名前を知らなかった)は「戻れない」ページを作ってしまう(それとGET制限のため汎用性に欠く)と思っていたので使った事がなかったのですが「戻れない」ページを作るパターンがPRGパターンという訳ではないのですね。

2007/10/15 @ 16:45
コメント from: とおりすがり [訪問者] メール
とおりすがり勘違いされているようですが、PRGパターン自体はすごくよく使われているパターンでべつにJavaでしか使われていないってことはないですよ。たとえば
1.はてなブックマークのコメント変更
2.wikipediaでの変更
3.pukiwikiでの変更
4.このブログのコメント投稿(なぜか302でなくて303ですが)
すべてPRGパターンが使われています。いずれもJavaで実装されているわけではありません。おそらくPRGパターンが使われていないのを探すほうが難しいんじゃないでしょうか。
 これだけ使われているのは、PRGパターンを使う理由がそれなりにあるからです。

>戻るやページのリロードでデータの再送信が行われないようにする事が目的らしいですが、別の方法でごく普通にこのように動作させることが出来ます。

とありますが、具体的にはどのようにするのでしょうか?フォームに予測不能な一意なIDを付けるだけでは2回目の送信を無視することはできても、送信自体をしないようにすることはできないと思うのですが(再送信するかどうかダイアログで聞いてきますよね)。たとえサーバ側で2重送信対策をしていたとしても、ユーザにはそれはわからないわけなので、このようなダイアログが出てくること自体ユーザビリティの観点から問題だと思うのですが。
2007/10/15 @ 21:34
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> いずれもJavaで実装されているわけではありません。

多分一般的なPRGパターンの実装でないタイプを.jspで見かけている(というか気づく事が多い)からだと思います。別にJavaでなくても実装できること分かっています。私が「戻れないのはけしからん」と不満に思っているののは何かおかしなリダイレクトヘッダを送信しているか他のチェック(多重送信チェックとか?)が原因でしょうね。

> このようなダイアログが出てくること自体ユーザビリティの観点から問題だと思うのですが。

プロキシなどにキャッシュされると困るのでプロキシにはキャッシュさせず、キャッシュ制御ヘッダの調整で出したしり、出さなくしたりできます。

それから、REDIRECTでGETに戻すとき「送信しました」だけなら良いですが送信した内容を全部表示する場合、大きなテキストだと困る事があります。ブラウザの仕様よりWAFの仕様の方が厳しい場合も多いです。

探せばいくらでもPRGパターンの実装はありそうですね。参考になります。本文では有害でないかもと追記しましたが、例示された実装例をみるとやはり有害かもと思えてきました。時間が無限にあれば調べたいところですが....
# 最初は別の意味で無用な制限を付ける実装と勘違いしましたが、
# 今回は脆弱な実装を助長しかねないかも、と言う意味で有害かも
# しれないと思えてきました。セキュリティ以外にも突っ込み所は
# あります。データフロー、メッセージの表示など。分かって使っ
# ているとは思いますけど。

コメント頂けると自分の勘違いや問題も整理できるので助かります。
そのうち「やっぱりPRGパターンは有害かも...」と書く事になるかも知れませんね。


ところでPRGパターンを使った場合、RFC2616によるとHTTPステータスは303の方が正しいようです。HTTP 1.0しか理解しないクライアントは誤作動する可能性もあります。302でも動作には問題ないので302を使っても間違いとは言えないようです。キャッシュ効率が落ちるのみです。
2007/10/15 @ 21:46
コメント from: とおりすがり [訪問者] メール
とおりすがり>本文では有害でないかもと追記しましたが、例示された実装例をみるとやはり有害かもと思えてきました。時間が無限にあれば調べたいところですが....

これはすごい。もしPRGパターン自体に脆弱性があればたいへんなことになりそうです。ほとんどのWebアプリは全滅じゃないでしょうか。はてなもwikipediaもpukiwikiもこのブログもだめなぐらいですもんね。

>プロキシなどにキャッシュされると困るのでプロキシにはキャッシュさせず、キャッシュ制御ヘッダの調整で出したしり、出さなくしたりできます。

これ大変興味があります。どうすればよいかぜひ教えてもらえないでしょうか。URLのみでも結構です。
自分もだいぶ試してみたのですができませんでした。
2007/10/16 @ 00:49
コメント from: 別のとおりすがり [訪問者] メール
別のとおりすがり>それから、REDIRECTでGETに戻すとき「送信しました」だけなら良いですが送信した内容を全部表示する場合、大きなテキストだと困る事があります。

言語というかフレームワーク依存ですが、Ruby on RailsやCatalystではこのような用途に使えるflashという仕組みがあります(とは言ってもPRGのための機能ではなさそうですが)

flashを使えばセッションと同じようにリクエストをまたいでデータを保存しておくことができますが、1回読み出すと(読み出し関係なく次のリクエストだったかも)自動的に消えるので、POSTで行った修正に関する情報をflashに入れておいて、リダイレクト先でそこから読み取って画面をレンダリングするという方法が一般的ではないかと思います。

が、こういうflashの使い方自体、若干バッドノウハウな気もしますが。
2007/10/16 @ 02:18
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> もしPRGパターン自体に脆弱性があればたいへんなことになりそうです。

とりあず、ここだけ。
RPGパターン自体に脆弱性は無いです。
あまり考えずにこのパターン使ってアプリを作るとCSRFに脆弱なサイトを作っていまい易い、と思っています。

フォーム処理は別のエントリを書いた方が良いかなと思います。

> が、こういうflashの使い方自体、若干バッドノウハウな気もしますが。

なるほど。参考になります。バッドノウハウな気配がかなりしますね。
2007/10/16 @ 08:34

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: とおりすがり [訪問者] メール
とおりすがり うーん、これがどうしてXSSに関係しているのか理解できないのですが。
 XSSで重要なのはHTMLにユーザが入力したデータを表示するときにエスケープしていないとスクリプトを記述できてしまうということだと思いますが、この例だとユーザの入力がScriptタグの間に表示されないといけないわけで、その状態ではXSSも何もないと思うのですが。
 それとも、これをどうにかすればエスケープをちゃんとしてても、Scriptが実行できてしまうのでしょうか?
2007/10/15 @ 21:13
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

まず前提条件ですが、すべて正しくエスケープしていればスクリプトが実行されないのは当然予想される結果です。SQLインジェクションと一緒で, 「' or 1=1 --」で攻撃可能になりますと解説して「エスケープすればできない」と言われれば「はい、その通りです」となるのと同じです。

割と普通にエスケープすれば動作しないとは思いますが、ブラックリストに頼っているような実装(もともとブラックリストに頼る事自体問題ですが)だと実装によってはスクリプトが実行できてしまう場合もあるかも、と思っています。

一番安直な例としては

var v = "$SOME_VAR_FORM_USER";
// do sanitize here
docuemnt.write(v);

と言ったコードでしょうね。document.writeを使っている時点で、ちょっとそれは.... と言うことでになります。はっきり言って私もinnerHtmlとかで使えるような場面があるのは分かりません。無いだろうとは思っていますが脆弱性は組み合わせて使うと思ってもいない効果を生む場合があります。E4Xで面白い形式の文字列でJavaScriptが動作する事を知っておくのは必要だと思います。

試されていないようですが上記のJavaScriptを含む文字列はscriptタグで囲まなくても実行できます。少なくともイベントハンドラやjavascript:では動作します。多分、expressionでも動作するでしょう。つまり、もしE4Xを除けば完璧なブラックリストであったとしてもE4Xサポートを悪用した攻撃なら通過する可能性がある、と考えられます。

また攻撃手法の一つにIPS/WAF「フィルタのすり抜け」があります。上記の文字列は様々なパターンのフィルタのすり抜けの可能性を示しています。IPS/WAFはブラックリスト型のセキュリティ対策なので当たり前といえばその通りですが、セキュリティ上の問題として考察に値すると考えています。

正直、安全性の確認が面倒過ぎするのでユーザ入力を含むJavaScriptの生成はお勧めしない、というのが現在のスタンスです。

実際のところFirefoxのE4X実装だけでもどうすればスクリプトの実行が可能なのかさえ全部できっていないと思っています。# どうなんでしょうね。

今のJavaScript実装でさえ検証するのは十分面倒なのに、複数ブラウザのE4X実装の検証などは想像しただけでも面倒です... 少なくとも私は積極的に検証しません。検証している方の情報収集するのがほとんどだと思います。検証もせず、情報収集もせず、厳しい入力の検証も行わず、ダイナミックにJavaScriptを生成すると痛い目に遭う確率が高くなると思います。

とりあえずこのエントリは「JavaScirptのXMLサポートには注意が必要である」事を伝えるのが目的です。

# 大抵のおかしな文字列でJavaScriptが実行できるケースには
# 驚かなくなりましたが、この例には正直驚いたのて驚きを共有
# できればと考えたので書きました。

2007/10/15 @ 22:01
コメント from: 徳丸 浩 [訪問者] メール
徳丸 浩このエントリーの内容について私もブログを書きましたのでご笑覧ください。
コメント欄ついていえば、IPS/WAFのすりぬけだけであればE4Xまで持ち出す必要はないかと思います。
JavaScriptの動的生成は危険という結論には同意です。
2007/10/17 @ 12:01
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> IPS/WAFのすりぬけだけであればE4Xまで持ち出す必要はないかと思います。

確かに全てのパターンを定義できるわけが無く、あまりにも変な文字列でスクリプトが実行できてしまうケースが多いのでXMLを使うまでもないですよね :)

2007/10/17 @ 12:54

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiとりあえず作者にメールしときました。
2007/10/12 @ 16:30

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakihttp://blogs.zdnet.com/security/?p=585

に書いてありますがMSはURIプロトコルハンドリングの問題を発見したハッカーを雇ったそうです。
2007/10/12 @ 17:02
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakihttp://blogs.zdnet.com/security/?p=566

割とよくまとまっている記事。
2007/10/12 @ 18:52

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiハイバネーションからの復帰にやたらと時間がかかるPCにアップデートをかけたら、ハイバネーション機能が使えなくなりました。

スリープにしかならないので復帰は速いです...

ちなみにチップセットは845Gです。ごく一般的なチップセットだと思うのですが...
2007/10/10 @ 23:20

この投稿にはモデレーション待ちのフィードバックが 1 件あります....

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiもうしばらく使ってみた感想は

- vmwareはvistaがサスペンド状態になった場合、復帰するまでに非常に時間がかかる。(ダメか?と思うくらい長い。もしかしてこれはvistaの問題?)
- vmwareは仮想環境としてサスペンド状態に状態にできないのでこれが結構面倒
2007/10/08 @ 02:46

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: あか。 [訪問者] メール
あか。こんにちは。初めまして。検索でたどり着きました。
今これからBootCamp1.4をiMac+OS10.4.10にインストール、かつParallels3.0と同居させようと企てていますが、yohgakiさんの具合の悪くなったParallelsもバージョンは3.0なのでしょうか?
2007/10/19 @ 22:25
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki3.0でした。

現在はOSX 10.5.1+ Parallels Desktop 3.0 beta版(リリース前のベータ版)で使っています。10.4 + 3.0に比べると安定性が落ちたような気がします。
2007/11/24 @ 16:27

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiファイルシステムのrealtimeオプションサポートは?というメールをいただいたのでここにも書いておきます。

以下のURLが参考になります。

http://kerneltrap.org/node/14148




2007/10/12 @ 17:38

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiiframeも禁止にしておくべきですね。
2009/09/22 @ 17:01

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

7 コメント

コメント from: IWA [訪問者] メール
IWA久しぶりです。
IHに関しては、以前から興味を持っていましたし、いろいろ調べました。何機種も使ったことがあります。

電磁波に関しては、専門外なので置いておいて。

まず火力。
ガス屋さんのサイトだと、大抵ガスはアルミ鍋、IHは素連レスとかで比較していますね。当たり前ですがちょっと不公平です...
僕の経験だと、同じ鍋ならIHの方がずっと火力が強いです。(業務用ガスを除く)
また、煮込みに関しても、超トロ火が使えるIHが有利だと思います。紹介のサイトでは、鍋底のみから熱が伝わる云々が書かれていますが、ステンレス多層鍋を使用すればそういったデメリットは感じられません。

唯一はやはり中華。
こればっかりは、上手な人ならガスの方がいいでしょうね。IHでは丸底が無理ですので。
ただ、家庭用のガスは火力が弱いし、最近の一部のIHであれば鍋を浮かせても瞬時に加熱されるので、それほど差はないと思っています。

あとIHは掃除が簡単ですね。ガスでも最近はガラス天盤になっていますが、上昇気流が発生するのでどうしても油が飛び散ります。

というわけで、僕はIH派です。
でも、都市ガスの提供エリアならちょっと考えるかなぁ
2007/09/05 @ 13:02
コメント from: newKamer [訪問者] メール
newKamer> ところで発電所や電気工事など、長時間強い電磁波にばく露している方と一般の方の健康状態を比較すれば超低周波電磁波の影響が分かりやすそうに思えます。

 疫学研究はされています。

 1994年。22,3000人の電気事業労働者を対象にした研究。「ガンの発病率が増大するという総括的な結果はない」

 1995年。ナンシー・ヴェアサイマーの疫学調査を追試。ノースカロライナ大学、デーヴィッド・サヴィツ。アメリカの電気事業労働者の調査結果。脳腫瘍だけに、小さな相関。ただし、統計的問題である可能性が大。

 前、二つの調査では、一般人100対電気事業労働者86で、電気事業労働者の方がガンになりにくい。おそらく、外乱要因(肉体労働をしている人は、他の全ての人と比べた場合にはガンになりにくいとか)。

 ご参考にどうぞ。

 ちなみに、私は普通の生活で暴露する電磁波が健康に悪影響を与える説には、「まともな根拠がない」と考えています。
2007/09/05 @ 13:09
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

> 上昇気流が発生するのでどうしても油が飛び散ります。

先日、新築一戸建ての完成内覧会に行ったとき換気扇が横(上でなく本当に壁にそって横)についてるものを見ました。担当の方曰く「メーカの方はIHだと上昇気流が発生しないのでこっち(横)の方が良く吸える」との事らしいです。確かに換気扇からコンロへの距離はかなり近いです。IHにしようと思いますが、さすがに調理している物が熱くなるので多少は上昇気流が発生し、横では辛いのではないか?と思います。使っている方に聞いてみたいですが、一応換気扇は上にします。

> 私は普通の生活で暴露する電磁波が健康に悪影響を与える説には、「まともな根拠がない」と考えています。

私も基本的には同じ考えです。電気事業労働者の方がガンが少なかったのは非常に興味深いです。適度な運動はガンにも効く可能性が高いのですね。電磁波より万年運動不足の心配をした方がよほど現実的ですね。


2007/09/06 @ 11:53
コメント from: IWA [訪問者] メール
IWA横に付いているのは、最近流行っている「グリーンハイキ」という物ですね。
本来消防法では違反なのですが、戸建て家庭では黙認されているようです。

通常の換気扇であれば、渦巻き式の物が換気がいいです。

あと、当然食べ物は熱くなりますが、部屋はあまり熱くはならないです。ガスだと、夏場のキッチンは地獄ですが...

ちなみに、僕は新築注文住宅を建てまして、実は明日が引き渡しだったりします...
当然、IHです。(東芝製)
2007/09/06 @ 12:07
コメント from: newKamer [訪問者] メール
newKamer IHについても使っているのでちょっとだけ。うちの場合は、換気扇が上なので壁換気扇がちゃんと吸うのかはわかりません。換気扇は近くない方だと思いますが、普通に汚れてますので、そんなにガスと違うのかな?と疑問。

 火力は普通の家庭のガスコンロと比較しても、別に気になるようなことは無かったです(機種にもよるんでしょうけど)。

 個人的にはフライパンでの焼き物の時に、中心部と周辺部の温度が違って、焼きが偏るという大変さがありました(ギョーザとか)。IHでは時間差焼きとか移動させてとかの方法を使って対処する必要がありました。ガスでも違いは出ますが、そこまでする必要はありませんでした。
2007/09/06 @ 13:32
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

> 本来消防法では違反なのですが、戸建て家庭では黙認されているようです。

違反なのですね。参考になりました。


> ちなみに、僕は新築注文住宅を建てまして、実は明日が引き渡しだったりします..

おめでとうございます。新築注文住宅と言う事でいろいろ苦労される事もあったと思いますが一段落ですね。


> 個人的にはフライパンでの焼き物の時に、中心部と周辺部の温度が
> 違って、焼きが偏るという大変さがありました(ギョーザとか)。
> IHでは時間差焼きとか移動させてとかの方法を使って対処する必要
> がありました。ガスでも違いは出ますが、そこまでする必要はあり
> ませんでした。

これは知りませんでした。子供が小さいので卵焼きが大好きなのですが
作りづらそうですね。

でもIHにすると思います。
2007/09/07 @ 10:51
コメント from: yoshi [訪問者] メール
**---
yoshiIHでの換気扇(レンジフード)の投稿がありましたが、私も最近聞いた話ですが(実際にものも見ました)ガス用のレンジフードだと吸い込まないので、IH専用のレンジフードにしなければ、燃焼空気が室内に充満するそうです。
皆さんIH用のレンジフードつけましたか。
2010/03/27 @ 19:14

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところでいい加減な管理をしているWebサーバであればHTTPヘッダのサーババージョンを隠していてもフィンガープリンティングでバージョン番号が簡単に分かってしまいます。

バージョン番号を隠すのは古いバージョンを使っている事を隠すことが目的ではありません。念のため。

2007/09/04 @ 10:29
コメント from: きりゅ。 [訪問者] メール
きりゅ。もちろん与える必要ない情報をわざわざ与えることはないと思いますが

>サーバのバージョン情報が詳しく公開されていれば、その情報を使うに決まっています。攻撃に使える情報は全て使わない訳がありません。
ここは関係ないと思う・・・。
サーバの情報読み取って攻撃手法変えるなんてしていなくて
「とりあえず全部やってみる」
ってのが攻撃者のパターンなんじゃないかなー、と。
2007/09/04 @ 15:47
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 「とりあえず全部やってみる」
> ってのが攻撃者のパターンなんじゃないかなー、と。

「下手な鉄砲数打ちゃあたる」方式が多いとは思います。どうせプログラムだし面倒なので手当たりしだい、という方法は多いですね。自動ではなく在る程度人間が脆弱性を選んで攻撃するときは、手間なのでバージョンを選んで攻撃すると思います。Defacement目的の攻撃等ではバージョン検索して攻撃が主流ではないか、と思います。


話が全く変わりますが、カナダでは玄関に鍵をかける習慣が無いと教えてもらいました。
これはこれで防犯上は良い効果があると思いました。
# コンピュータセキュリティではこの種のノーガード戦法は採用できませんが、
# リスクを丸ごと無くす事はできます。Webは使わないとか(w
2007/09/07 @ 11:07

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

5 コメント

コメント from: 加藤泰文 [訪問者] メール
加藤泰文暗証番号 or パスワードだけだと心配ですよね.送金などの処理の時は,もう一段セキュリティが欲しいですね.乱数表のやつもまあ効果あるのかな?

口座番号とパスワードでログインさせるネットバンキングはどうにかしてほしいなあと思ってます.ログイン用の別の ID がほしいところ.
2007/09/03 @ 17:06
コメント from: としはる [訪問者] メール
としはるパスワド変えなきゃってことですね---
2007/09/04 @ 00:16
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 口座番号とパスワードでログインさせるネットバンキングはどうにかして
> ほしいなあと思ってます.ログイン用の別の ID がほしいところ.

その通りですね。口座番号はログインに利用してはならないと思います。

数字のみの暗証番号も禁止した方が良いと思います。日本の場合、キャッシュカードなどの誕生日/電話/住所に関連する数字を付けている方がかなりの割合になります。誕生日/電話/住所情報は個人が特定できれば比較的簡単に入手できるはずです。口座番号を知っていればボットネットを使って1口座1日1回づつ試してもかなりの数の不正ログインが可能になると思います。

随分前にモバイルデバイスなど利用したセキュリティの確保方法(ワンタイムワスワード方式)をこのブログで紹介したのですが、この方法を採用した銀行を聞いた事がないです。誰に聞いた訳でもなく自分で考えたのですが、誰でも考えつくかなり安全かつ安価なログイン方法だと思うのですが... 特許でも取得しているのかもしれませんね...
2007/09/04 @ 09:36
コメント from: ikepyon [訪問者] メール
ikepyonトークンを使ったワンタイムパスワードを使用しているところは幾つかありますね。
モバイル機器を使ったワンタイムパスワードは確か幾つかの会社で製品化されていたと思います。それを使っているというのは確かにあまり聞かないかもしれません。
2007/09/04 @ 11:09
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiありがとうございます。やはり製品化はされているのですね。ライセンス料が高すぎる(?)のかも知れませんね。簡単に作れるので権利関係に問題がなければライセンスせずに自前で作ってしまえば良いと思います。
2007/09/04 @ 11:13

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiFirefoxの方が脆弱性が多くても攻撃されないのはアップデートの仕組が違うからだと思います。

Firefoxはアプリがチェックしますが、IEはWindowsUpdate/MicrosoftUpdateがチェックします。WindowsUpdateを無効にしているユーザがかなりいるので結局はセキュリティホールが残ったブラウザを利用しているユーザはIEが断トツに多い結果になっているのだと推測できます。

IEだけはアプリ単位でアップデートするようにしたら既知のブラウザ脆弱性を攻撃される数をかなり減らすことができると思います。
2007/08/30 @ 15:25

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiいずれにせよmysql_queryを拡張しているので、それに対応するmysql_real_escape_stringを拡張すべきですがマルチバイト文字対応が面倒だったのでaddslashesが拡張されたと思います。

mbstringを使うとmysqlモジュールがmbstringに依存する状態になるので好ましい状態とは言えません。

結局、短期/中期的にはマルチバイト環境に適切に対応することはあまり期待できないと思います。

2007/08/28 @ 12:21

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

18 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki文字エンコーディングを利用した攻撃を知っていて自分のシステムには影響ないと確信できる場合は、急いでAPIを利用するように修正する必要はありません。
# と書いておかないと困る方もいるかもしれないので念のため。
2007/08/22 @ 03:59
コメント from: ikepyon [訪問者] メール
ikepyon文字コードがらみでは、アプリで使っている文字コードと、DBのSQL分で使える文字コードを同じにしておかないと大変な目にあうことがあるようです。
特にアプリ側でUTF-8を使っていて、DB側では他のコードを使っていると、バインド機能使っていても攻撃が成立することが場合によってはあるみたいです。
2007/08/22 @ 14:03
コメント from: itoh [訪問者] メール
itohMySQLが4.1になってから、担保的にいつもconnectの直後にSET NAMESのクエリを発行してます。

このエントリの脆弱性の理由って、このあたり
http://blog.ohgaki.net/index.php/yohgaki/2006/02/13/addslashesa_la_a_a_ua_sa_pa_fa_a_bc_a_ma#comments
と関連してると思うのですが。

で、PHPの標準MySQL関数ってクライアントのエンコーディングを設定する関数がないですよね。MySQLi使えればありますが、普通のレンタルサーバでは入れてないかと思います。

ということは、
MySQL5+PHP5+MySQLi
でない限り、使うなってことでしょうか?多くのPHPユーザーの現実に反している気がします。
2007/08/22 @ 16:15
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> PHPの標準MySQL関数ってクライアントのエンコーディングを設定する関数がないですよね。

実はPHP5.2.3には追加されています。セキュリティフィックスなのでPHP4.4ユーザにも提供されるべきなのですがまだです... 追加されてリリースされるのか分かりません。

PHP 4.4向けにバックポートしたパッチを書こうかな、と思っていますが時間がない.......
2007/08/22 @ 16:53
コメント from: Tietew [訪問者] メール
Tietew> (PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、
PostgreSQL でも 7.3 までは psql で使ってはいけないコマンドでした。代わりに psql の \encoding ディレクティブを使います。
7.4 からは SET CLIENT_ENCODING を psql が認識して内部エンコーディングを変更するようになりました。
2007/08/31 @ 11:10
コメント from: 名無し [訪問者] メール
名無し禁止すべきであるという、テストケースを書いてください。
2007/11/02 @ 17:30
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 禁止すべきであるという、テストケースを書いてください。

私が書くまでもなく探せば見つかると思いますが、参考になるURLとしては

http://www.postgresql.org/docs/techdocs.50

などがあります。PostgreSQLの文書ですがMySQLでも同じです。MySQLの接続構造体にもencodingを保持するメンバがあり、PostgreSQLの文字エンコーディング設定/エスケープAPIで同じような使われ方としています。

テストケースは私もセミナーで話をした事があるので私のスライドも見つかるかも知れませんが上記のURLの方が詳しく解説しているハズなので参考になると思います。
2007/11/04 @ 12:24
コメント from: amiba [訪問者]
amiba有益な情報を有難うございます。

実は、Xoopsのモジュールを作成していて、
文字コードを「SET NAMES」で指定したい
場面が生じてしまいました。

そこでもう少し詳しく確認したいのですが、
よろしいでしょうか。

ご指定のサイト
http://www.postgresql.org/docs/techdocs.50
にアクセスしたところ、
http://wiki.postgresql.org/wiki/Main_Page
に飛んでしまいました。

そこで、問題の「SET CLIENT_ENCODING」で
検索したところ、それらしい記事では
「SET NAMES」とかによる文字コードの設定
というよりも、「SJIS, BIG5, GBK, GB18030,UHC」
とかでのエスケープ処理の問題ばかりが
でてきました。

http://wiki.postgresql.org/wiki/8.1.4_et._al._Security_Release_Technical_Info
http://wiki.postgresql.org/wiki/8.1.4_et._al._Security_Release_User%27s_Guide

そして同様の検索ででてきたFAQ
http://wiki.postgresql.org/wiki/8.1.4_et._al._Security_Release_FAQ
では、正規表現やaddslashes()やmagic_quotesで
エスケープしても、問題がでてくる、と書いてありました。
そして解決法として、

1. pg_escape_string() (but look for a driver update soon)
2. PEAR-DB (safe against this exploit, but may be vulnerable to future issues as it uses ad-hoc escaping)
3. NOT PEAR-MDB2 (according to the PEAR development team, MDB2 is currently using a custom escape routine which is currently unsafe. Expect an update next week.)
4. PDO
5. If you're using magic_quotes_gpc, test using magic_quotes_sybase instead (and plan a refactor -- magic_quotes will not be in PHP 6.0)

が挙げられていて、新しいものならば
pg_escape_string() で処理しても
よさそうに読めてしまうのですが・・・。

ですので、yohgakiさんのおっしゃる
「SET NAMESは禁止」というのは、「一人の
開発者がaddslashesとかで
エスケープ処理をしている場合、
別の開発者が知らないところで、
「SET NAMES」を使ってSJISとか問題のある
文字コードに変更するロジックを入れてしまう際に
問題が生じるので、「SET NAMES」の
利用には注意すること」と
いうことで、よろしいでしょうか。

また、上でも書きましたとおり、Xoopsですので
MySQLなのですが、mysql_real_escape_stringは、
エンコーディングを考慮したエスケープを
してくれるそうなのですが、これを
大丈夫ということで、よろしいでしょうか。
2008/05/09 @ 17:16
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiAPIを利用したデータベース接続は現在の文字エンコーディング設定を各接続情報としてメモリ内に保存しています。APIのエスケープ関数はこの情報をエスケープの際に利用します。

SET NAMESによって文字エンコーディングを変更するとC言語などで書かれたエスケープAPI (libmysql, libpqなど)が想定しているエンコーディングと実際のエンコーディングが異なる状況が発生します。この違いにより、環境によっては文字エンコーディングを利用したSQLインジェクション攻撃が可能になります。


つまり、APIによって文字エンコーディング情報を変更しないと接続情報が更新されず、エスケープAPIを利用していても正しくエスケープできない場合発生する、ということです。

SET NAMES, SET CLIENT ENCODINGを利用しないで、mysql_set_charset, pg_set_client_encodingを利用すれば、このような不整合が発生しないので問題も発生しなくなります。

SET NAMES等を使っても安全な場合もあります。それは元々接続がSJISだった場合です。ISO8859-1だった物をSET NAMESでSJISに変更してしまうとmysql_real_escape_stringを利用していてもSQLイジェクションが可能になります。

addslashesによるエスケープは論外です。絶対に行ってはなりません。



2008/05/10 @ 12:09
コメント from: amiba [訪問者]
amibaご返事を有難うございます。

>エスケープAPI (libmysql, libpqなど)が想定しているエンコーディング

ということとの関連ですが、
新しく見つけたサイト
http://d.hatena.ne.jp/t_komura/20060122#1137944280
によると、むしろ「SET NAMES」を
使用して、「SET NAMES binary」と設定
して、エスケープを必ず専用エスケープ
関数(mysql_real_escape_stringなど)
で行うことで問題を回避する、
という手法があるそうです。

上のような手法が有効なのはやはり、
binaryならば基本的にどんな状態の
APIでも想定しているから、
ということでしょうか?
2008/05/10 @ 13:15
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiWikiが使えないようだったので以下の対策にてついてのコメントをしていませんでした。現在でもアクセスできないようですが

1. pg_escape_string() (but look for a driver update soon)
2. PEAR-DB (safe against this exploit, but may be vulnerable to future issues as it uses ad-hoc escaping)
3. NOT PEAR-MDB2 (according to the PEAR development team, MDB2 is currently using a custom escape routine which is currently unsafe. Expect an update next week.)
4. PDO
5. If you're using magic_quotes_gpc, test using magic_quotes_sybase instead (and plan a refactor -- magic_quotes will not be in PHP 6.0)

少なくとも、5の対策は対策と呼ぶには十分とは言えません。sybaseはSQL準拠のエスケープ方式だったのでaddslashesでも'は'', nullは¥nullにエスケープしています。しかし、文字エンコーディングを考慮していないので壊れた文字エンコーディングを作って攻撃する事も可能です。
# 対策済みのPostgreSQLならこのタイプの壊れた文字エンコーディング
# をすべて検出できるので、これでも大丈夫とも言えます。スラッシュ
# でエスケープする変わりに'でエスケープされる様になることは解説
# してあるのか気になっています。
2008/05/11 @ 02:11
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 新しく見つけたサイト
> http://d.hatena.ne.jp/t_komura/20060122#1137944280
> によると、むしろ「SET NAMES」を
> 使用して、「SET NAMES binary」と設定
> して、エスケープを必ず専用エスケープ
> 関数(mysql_real_escape_stringなど)
> で行うことで問題を回避する、
> という手法があるそうです。

これは対策になりません。不正な文字エンコーディングでもデータベースに登録できるようになるだけです。

SQLインジェクションだけ防いでも意味が在りません。不正な文字エンコーディングはHTML/XML/JavaScriptインジェクション等にも利用できるからです。絶対にこのような運用はしてはなりません。


2008/05/11 @ 15:43
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki既に必要十分な対策がある(APIを利用して文字エンコーディングを設定&エスケープ)ので態々、回りくどい事を考えて安全でないかも知れない手法や対策でなく、このエントリで解説しているように


- APIを利用して文字エンコーディングを設定
- APIを利用して文字列をエスケープ


すれば良いだけです。もし、自分が使っている言語のライブラリにこれらの関数がないなら、セキュリティ上の脆弱性問題としてレポートして対処してもらうのが一番です。

2008/05/11 @ 15:48
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで文字エンコーディングベースの攻撃の根本的な対策は「アプリケーション」が全ての入力の文字エンコーディングが正しいかチェックする方法です。

このエントリではデータベースとアプリケーションの間でのセキュリティ対策を解説しているので、

- APIを利用して文字エンコーディングを設定
- APIを利用して文字列をエスケープ

を対策として紹介しています。多重のセキュリティ対策の意味もあるので、全ての入力の文字エンコーディングをチェックしていてもデータベースとアプリケーション間でもこれらを使って処理すべきです。また条件によっては攻撃可能な状態も発生します。e.g. SJIS文字列をaddslashesでエスケープ

全てのプログラマにどのような状態の時に攻撃可能となるか、解説してもらい、理解して、実践してもらうのは無理があります。

最も確実かつ簡単な方法(APIを利用した文字エンコーディング設定とエスケープ。実装は簡単ではないかもしれませんが)を採用するのが一番良いと思います。
2008/05/11 @ 15:56
コメント from: amiba [訪問者]
amiba色々とご教授をありがとうございます。

私自身も論点をぶらすような投稿を
少ししてしまったようなので、
論点を整理すると、「SET NAMESは禁止」
という論題で特に問題になるのはむしろ、
「中途半端にAPIを利用して、セキュリティー
ホールをつくってしまう」という
ことでしょうか。

問題になるケースというのは、一見して
非常に安全に見える「文字コードを考慮した
エスケープをしてくれる関数」
(mysql_real_escape_stringやpg_escape_stringなどで
特に旧いバージョンのもの)を利用したけれども、
「SET NAMES」や「SET CLIENT ENCODING」
で文字コードを変更する
場合ということですよね。

この場合には、例えば
mysql_real_escape_stringで考慮されている
文字コードと入ってくるデータが食い違って
しまって、エスケープの関数がざるになる
ケースがある。そして、「SET NAMES sjis」
した場合では問題の実例も報告されている。

==================

---SET NAMES---
DB接続直後のデフォルト状態 
実際のコード ujis、API想定コード ujis

「SET NAMES sjis」を実行
実際のコード sjis、API想定コードujis

エスケープ関数実行
入ってくるデータはsjisだが、ujisの基準で
エスケープ。結果、攻撃が可能に

---APIで変更---
DB接続直後のデフォルト状態 
実際のコード ujis、API想定コード ujis

「mysql_set_charset(sjis)」を実行
実際のコード sjis、API想定コードsjis

エスケープ関数実行
入ってくるデータはsjisで、sjisの基準で
エスケープ。(万々歳)

(上のようなことを考えると例えば、
http://php.morva.net/manual/ja/function.mysql-set-charset.php
にあるJanez R.さんのような運用は、
問題がある。)

====================

ここで問題になってくるのが、mysql_set_charset
がPHPの5.2.3以降となっているところで、
これより旧いバージョンで運用している
ところが多い(pg_set_client_encodingは
結構古くからある)。

ということで、仕方なく「SET NAMES」を使う
場合があるのですが、この場合には開発者間
できちんを申し合わせをしておく必要がある。

実際に問題のあるな実例が
確認されているのは、「SET NAMES sjis」あたり。
(http://wiki.postgresql.org/からすると、
utf8とかならば、安全でしょうか。)

そして、
http://d.hatena.ne.jp/t_komura/20060122#1137944280
の対策は、SQLインジェクションは防げても、
登録データに変なものが入りやすくなってしまう。

よって、登録されたデータを活用する際に
セキュリティーのための手間をかけなくては
ならないので、
可能であれば断然「APIで文字コード変更+
APIでエスケープ」がよい。

お話をまとめると、上のような感じでしょうか。
2008/05/11 @ 18:45
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> お話をまとめると、上のような感じでしょうか。

はい。

普段MySQLを利用していないので指摘いただくまで忘れていました。mysql_set_charsetは新しい関数なので、古いPHP(ホスティング環境など)ではアップグレードが出来ないです。

SET NAMESを利用していても、安全に運用したい方は以下のようにすればよいと思います。PHP以外の言語を利用されている方でも意味を理解いただければ、同じように対策できるはずです。

■EUC-JPかUTF-8エンコーディング
この場合は話は簡単で入力時点で文字列がEUC-JPまたはUTF-8で正しくエンコーディングされているかチェックするだけです。アプリケーションの入力チェック処理としてmb_check_encoding(無い場合はmb_convert_encoding)を利用して文字エンコーディングが正しいかチェックすれば大丈夫です。そのまま、mysql_escape_stringを使ってエスケープすればほとんどの環境で大丈夫だと思います。

# 例えば元のエンコーディングがISO-8859-1で
# EUC-JP, UTF-8に変更した場合は安全。

蛇足ですが、文字エンコーディングのチェックはWebアプリケーションセキュリティ対策の基本です。例えば、htmlspecialchars/htmlentitiesが不正なマルチバイト文字に対して脆弱な問題が最近修正されていますが、入力チェックで文字エンコーディングが正しいかチェックしれていれば問題ありません。libxml2等よく利用されているライブラリにも文字エンコーディング関連の脆弱性が発見されていますが文字エンコーディングが正しければ影響を受けないものがほとんどです。


■SJISエンコーディング(その1)
この場合、文字エンコーディングに配慮した置換ができる関数でエスケープするしかありません。例えば、mb_regex関数を利用して\と'をエスケープする自前の関数を作成して利用します。(マニュアルを見ないで書いています。mysqlでエスケープが必要な文字はMySQLマニュアルを参照してください)

このエスケープ処理を行うだけでは壊れた文字エンコーディング攻撃に脆弱になるので、アプリケーション全体の入力チェック処理として、文字エンコーディングが正しいか確認する処理も追加します。

■SJISエンコーディング(その2)
komuraさんのブログに書かれている通り、EUCやUTF-8にはSJISにある問題が無いです。なので以下の対策も有効です。

> 非効率ですが、データベースの文字コード
> が Shift_JIS でも、クライアントの文字
> コードを EUC-JP にして、SQL 文を EUC-JP
> に変換してから発行することは可能だと思
> います。

文字列をmb_convert_encoding関数でSJISからEUCかUTF-8に変換し、変換後にmysql_escpae_stringでエスケープ処理行い、エスケープ済み文字列をまたSJISに変換してデータベースに送信すればSQLインジェクション出来なくなります。

他の対策同様、アプリケーションレベルでの文字エンコーディングチェックも行うべきです。
2008/05/13 @ 10:04
コメント from: aaa [訪問者]
*----
aaa>SQLインジェクションに脆弱になる場合があります

その詳細を本文で説明してもらえますか?
2011/06/14 @ 09:08
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiSET NAMESでSQLインジェクションが可能になるケースはこのエントリでなく別のエントリで説明してるので省略しています。

セキュリティの専門知識が無い方も居るとは思いますが、万人向けではないので関連知識の解説を全てのエントリで行う事は無理なのでご理解ください。

良く分からなくても「アプリからのSET NAMESは禁止」と覚えておくだけで十分です!
2011/11/04 @ 07:33

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: wtnabe [訪問者]
wtnabeまとめの中に、バリデーションについては近いうちにエントリを起こし直す旨をくり返し書いておいた方がよいように思います。バリデーションしようって言ってるのにバリデーションの内容がないじゃん、と思ってしまいましたから。

よく読み直したらそのうち追加されることが分かりますが、ざっと読むと枕だけで終わってしまっている印象が強いです。
2007/08/22 @ 09:41
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。すこしづつ細切れに公開する場合、もう少しまとまりを考慮するようにします。
2007/08/22 @ 15:04

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiPHPは良くも悪くもフレームワーク的なソフトです。普通の言語にはphp.ini設定があるので「特定のディレクトリ以外のファイルはスクリプトとして実行しない」という設定も簡単にシステム全体に強制できます。

他の言語で同じように実装するならスクリプトとして実行するディレクトリを指定する特別な定数を設定して、読み込もうとしているスクリプトファイルが設定されたディレクトリ以外ならエラーにする、方法が考えられます。

2007/08/21 @ 18:55
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiもっと単純に

script_dir=abs_path1:abs_path2

このパス以外のスクリプト実行はエラーするパッチの方が受け入れられ易いかもしれませんね。

CLIなどの場合、スクリプトの開始に

<?php

を書かずに済む方が良いような気がするのでエントリのような方法を考えました。(好みの問題ですが)
2007/08/22 @ 11:48

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

5 コメント

コメント from: MS-K [訪問者] メール
MS-Kひとまず PLUGIN_EVENT_TRACKBACK_TITLE を入れればいいかもしれません。

PLUGIN_EVENT_TRACKBACK_TRACKALL
はい いいえ
PLUGIN_EVENT_TRACKBACK_TRACKOWN
はい いいえ
Proxy Host
Proxy Port
Proxy User
Proxy Password

上鍵さんの翻訳が追いついていないので英語表記のみですが、たぶん「PLUGIN_EVENT_TRACKBACK_TRACKALL」で制御していると思います。
私は「はい」にしているので、ブロックについては未検証ですが。

ご存知の上に検証済みの場合、お詫び申し上げます。
2007/08/13 @ 22:46
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiトラックバックはそれなりに制御するプラグインがあるのですね。コメントありがとうございます。
2007/08/18 @ 08:43
コメント from: MS-K [訪問者] メール
MS-K実はここ1週間以上、トラックバックspamの量が激増しているので、PLUGIN_EVENT_TRACKBACK_TRACKALL(自動的なトラックバックを全体に使うことを無効にしますか?)を“はい”に切り替えてみましたが、無効とはなりません。

単にモデレート待ちになるようです。

私のは諸事情で少し古めのs9yなので、新しいバージョンのdiffも確認しましたが、やはり“無効”とはならないようです。
http://php-blog.cvs.sourceforge.net/php-blog/additional_plugins/serendipity_event_trackback/

ガセ情報、申し訳ございませんでした。
2007/08/31 @ 21:34
コメント from: MS-K [訪問者] メール
MS-K何度も申し訳ございません。
ガセの上塗りをしていました…。
PLUGIN_EVENT_TRACKBACK_TITLE は自分から発射するトラックバックの制御です。

送られてきたトラバを無効にする機能はやはり見当たらないようです。
正規表現や単語登録ではじく以外なさそうです。

申し訳ございませんでした。
2007/09/02 @ 11:30
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

使ってみないと分からない事は沢山あるので「これが使えるかも」といった情報も役に立つと思います :)
2007/09/03 @ 01:53

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: 加藤泰文 [訪問者] メール
加藤泰文CanonのプリンタはUSBのみサポートって多いですよね.Apple公式サイトにもUSBのみみたいな記述があるもの多数.

http://gimp-print.sourceforge.net/MacOSX.php3
の最新を入れると CUPS でも出てくる場合もあるみたいですね.

私の場合は Pixus950i という少し古いプリンタを使ってますが,BJC-8200という別のプリンタを選択し,解像度などを CUPS 画面できちんと設定するととりあえず印刷は出来ました.6色インクなのに3色か4色印刷になっているとかあるような気がしますが...
2007/08/06 @ 14:22
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki加藤さん、先日はどうもです。

やはりUSBが当たり前の状態なのですね...
USBのみという仕様に皆さん納得できているとは思えないのです...

同じCUPSでもLinuxのドライバ(これも結構適当で古過ぎですが)なら普通にCUPSで使えるので同じ様にしてほしいところです。
2007/08/07 @ 10:06

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: きりゅ。 [訪問者] メール
きりゅ。PS3はそもそもゲーム機じゃないから平気ですよ!
(最近ではDVD/音楽CDのアプコンの性能の良さが一部で騒がれてます
2007/07/31 @ 17:16

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: tarot_7z [訪問者] メール
tarot_7z件のエントリを拝見して、例のアドオンを導入し、快適さを実感した者です。
画面がガチャガチャ動かなくなり、表示もパパパッとすばやく表示される気がします。

…FLASH OFFの快適さが気に入りましたので、IE7でもFLASH OFFをしています…IE7pro(http://www.ie7pro.com/)を使って。
(FIREFOXのアドオンと同じように見たいFLASHだけ適宜ONにできるので快適です)
2007/07/25 @ 20:10

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

6 コメント

コメント from: 匿名 [訪問者]
匿名FirefoxだとJava、JavaScriptのON/OFFは設定できてもプラグインはないんですね。知りませんでした。

Operaだと、「プラグインを有効にする」のチェックを外す、でしょうか。もちろんFlash以外のプラグインも無効化されます。
2007/07/19 @ 02:02
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiアドオンのOn/OffはあるのですがプラグインはUIは無いと思います。
JavaScript/JavaのOn/Offは昔はUIがあったと思いますが、今Firefox2.0の設定画面を見るとなくなってますね。Javaを無効化するアドオンもあります。ブラウズしながら気軽にOn/Offできないと使い勝手がわるいのでJavaScript/Java/Flash/PDFなどは一つのアドオンでサイト単位で制御できると便利ですね。
2007/07/19 @ 07:54
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiabout:config (アドレスバーに直接入力)すればいくつかの項目の有効無効は設定できるようになります。JavaScriptのOn/Off, 試していませんがプラグインの実行前に許可を求める設定と思われる項目もあります。
2007/07/19 @ 11:32
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiFlashを使ったUSER_AGENTインジェクションも問題ですね。User-AgentヘッダをSQLインジェクションに脆弱なアプリでなければUser-Agentヘッダを送っても自分で自分の首を絞める事くらいしかできませんが、FlashでUser-Agentヘッダを送信すると結果的にUSER_AGENTとして利用できてしまうそうです。探せば結構脆弱なアプリが見つかるかと思います。
2007/07/19 @ 17:43
コメント from: shiva [訪問者] メール
shivafirefox2のhttponly拡張(v0.5)ですが、なにやらexpire属性つきのcookieではバグにより正常に扱えないようです。

例:

A.setcookie("withexpire",123,time()+60*60,"/",null,null,true);
B.setcookie("noexpire",123,null,"/",null,null,true);

httponly拡張は通常Javascriptから参照する場合は、暗号化され、hO_ という名前をクッキー名の先頭につけるようですが、

A. hO_withexpire
B. hO_noexpire

と書き換えられるところを

A. "hO_withexpire

となってしまうようです。Bは正常なので、httpリクエストで送信される場合は、noexpire に複合化して正常に送信されますが、Aはバグにより、そのままの名前で送信されてしまいます。

print_r($_COOKIE);

をみると

Array
(
["hO_withexpire] => 6337c4aa9abd92e1261353477911e150
[noexpire] => 123
)


となります。まだhttponly属性を採用しているサイトが少ないこともあり、あまり感じないのかもしれませんが、早く直るといいですね。firefox3ではデフォルトでサポートのようで早くリリースしてほしいものです。
2007/07/20 @ 00:58
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakihttponlyがfirefox 2.0.0.5で追加された、と言うブログがありますね。ただし、XMLHTTPRequestを使うとクッキーが見える... という問題はなおっていないようです。

最も安直な方法でのクッキー取得はできなくなったのでよい事には代わり在りません。詳しくは以下のURLが参考になります。
http://ha.ckers.org/blog/20070719/firefox-implements-httponly-and-is-vulnerable-to-xmlhttprequest/
2007/07/20 @ 17:29

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: okdt [訪問者] メール
okdt*1 で整数型に、ですか。これは面白いですね。エラー処理がしずらいですから、最後の最後でやるとよさそうですかね。
2007/07/16 @ 04:59
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiokdtさん、ご無沙汰しています。
もし利用するなら最後の最後がよいと思います。

特にお勧めの方法ではないのでできれば確実にエスケープ処理するのがよいですが、とにかくてっとり早く安全にしたい、と言う場合はHTMLでもSQLでも同様の処理で済むのがよいところだと思います。

PHPの場合、不動小数点のprecisionがphp.iniで設定できるのでその設定が意図通りかも確認しておいた方がよいと思います。デフォルトは12(php.ini-dist)または14(php.ini-recomended)なので環境によって動作が異なります。
# ブログエントリの方は知っててうろ覚えな記憶を確かめるのが
# 面倒だったので自分の環境だけでチェックしています(汗

php.ini-distが12になっているのは不動小数点の誤差を理解していないユーザからのバグレポートに飽きた(?)Zeevさんが14から12に変えたためだったと思います。
2007/07/16 @ 15:34

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 何もしてなくても50%CPU時間を消費(Vista Business)ので軽くはないです。

最新版をダウンロードしてリリースノートをみるとVistaでUSBでバイスが有効になっていると30%のCPU 時間が使用される問題が解消された、となっていました。これでCPU時間問題は解決なのかな?
2007/07/19 @ 11:05

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakislashdot.jpのリンクおかげで参照数が多めなので追記します。

1. ソースからPHPをビルドしている場合、迷わず5.2系を選択
2. ディストリビュータが配布するPHP5.2系より前のバージョン(PHP4.4, PHP5.1など)を使わなければならない場合、将来5.2系でも動作するようなコードを書く

どのバージョンでも動作するコードを書く事はそれほど難しくありません。PHP4でもXMLは扱えますがバグが多いので私はPHP5系でないと扱う気がしません... XMLの場合、使っているモジュールからして違うのでこのような場合はどの環境でも動作するコードを書くのは非常に面倒です。こういう場合はソースからビルドするか、自分でパッケージを作成して管理するのがよいと思います。




2007/07/15 @ 22:43

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

14 コメント

コメント from: 八木 [訪問者] メール
八木この正規表現では「php」だけでもマッチしてしまいます(「?」がエスケープされていない)。b2evolutionの仕様で投稿時にバックスラッシュを二重にしないと表示の際に消えてしまうのかもしれませんが。
2007/06/24 @ 11:10
コメント from: teracc [訪問者] メール
teracc>なぜ後者が不十分かは常識ですよね?

どういう場合に不十分なんでしょうか? 以前、preg_matchでは改行以降は無視すると記事に書かれていましたが、それと関連した話でしょうか? しかし、少なくとも私の環境では、改行以降を無視する現象は再現しません(Stefan Esser氏が以前書いていたものは私も知っていますし、再現もします)。

>自分のサイトにファイルインクルードバグが無いからといって対策を怠ってはいけません。

Webサイトの開発者が守るべきは、基本的に自分のサイトだけだと思います。自分のサイトを守るだけならば、アップロードファイルの拡張子の制限や、Webサーバの設定だけでよいわけです(画像にJavaScriptコードを挿入される攻撃への対処は、別途必要ですが)。

もし他サイトのリモートインクルージョン欠陥にも責任を持たなければならないならば、全てのWebサイトでこの問題への対処が必要になります。全てというのは、PHP以外の言語を使用するサイトや、ファイルアップロード機能を持たないサイトも含みます。

他サイトについては「気になる人は対処したら?」というレベルの話じゃないでしょうか。

>変換の過程で攻撃コードは削除されます。

変換が「完全な対策」と言えるのでしょうか。変換によって、フォーマットが不正な画像は排除できるのでしょうが、変換後のファイルが攻撃コードを含まないことは、保証されないと思います。
2007/06/24 @ 14:10
コメント from: komura [訪問者] メール
komuraこの問題に対する有効な対策として正規表現関数の mb_eregi() を挙げておられますが、以下のコードにすると攻撃が検出されませんでした。preg_match() では検出されました。
私の環境の問題でなければ、mb_eregi() で完全にチェックできるとは言えないのではないでしょうか?


$image = "test\n\x81 mb_regex_encoding( "SJIS" );
if (mb_eregi('<\\?php', $image)) {
die('Attack detected');
}


また、preg_match() を使用したコードが不十分であるとのことですが、もう少し詳しく教えていただけませんでしょうか。
最近 PHP をあまり使っていないからかもしれませんが、常識になっているとは知りませんでした。

実際には、画像形式を変換して攻撃コードを排除する方法が安全なように思います。
2007/06/24 @ 21:59
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>Webサイトの開発者が守るべきは、基本的に自分のサイトだけだと思います。自分のサイトを守るだ
> けならば、アップロードファイルの拡張子の制限や、Webサーバの設定だけでよいわけです(画像
> にJavaScriptコードを挿入される攻撃への対処は、別途必要ですが)。

画像ファイルにPHPコードが含まれているか?絶対にチェックしなければならないとは思いません。

しかし、自分のサイトだけ守れば問題なし、という考え方には賛成できません。ウィルスを含んだファイルを公開していても問題なしと言えないと思います。

画像処理ライブラリには度々脆弱性が見つかっています。対策済みのシステムでは画像が表示されないだけで済みますが、サイトの画像を表示しただけで未対策のシステムにスパイウェアがインストールされても問題ない、例えばFlickerを見ていたらスパイウェアがインストールされても気にしない、と思う方はいないと思います。

いづれにせよ画像ファイルの形式を変換して、その際のエラーをチェックすればほとんどの攻撃用のコードは無効化できると思います。

> 変換が「完全な対策」と言えるのでしょうか。変換によって、フォーマットが不正な画像は排除できる
> のでしょうが、変換後のファイルが攻撃コードを含まないことは、保証されないと思います。

例えば、GIFからPNGへ変換した場合、普通のライブラリはGIFのヘッダを解析、画像イメージをデコード、ビットマップイメージに近いデータを生成、新しい画像形式のヘッダを生成、画像データをエンコード、のような過程になっていると思います。

GIF、PNGはロスレス圧縮を利用していますがバイナリ部分は圧縮されているのでこの部分にデータがコードだとすると解凍に失敗します。ヘッダがおかしくても変換に失敗します。仮にフォーマットに大きなパディングがありそこにコードが埋め込める場合でも普通のコードであれば変換するとこの部分のコードも削除されるはずです。GDライブラリを利用している場合、GDネイティブのデータ形式に変換してからイメージを再生成すれば同じ効果を期待できます。ブログでは変換コマンドを利用しているアプリも考慮して別形式に変換、再生成する手順としてGIF、PNG、GIFと変換する手順を紹介しています。ビットマップ型のファイル形式同士だと形式を変換しても攻撃コードが削除できないライブラリがあるかも知れませんが確認していません。あったら是非教えてください。

JPEGのexif拡張を利用している場合、コマンドやライブラリによってはJPEGからJPEGに変換するとテキストデータをそのままコピーしてしまう可能性も高いのでJPEGの圧縮率を変更するだけでは、ここで記載している問題に対処できない可能性があるので注意が必要です。exifを使うと攻撃用のPHPコードをホスティングさせられる事を防ぐには”<?”を”< ?"とスペースを強制的に入れるなどの対策が必要です。
2007/06/26 @ 03:16
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> $image = "test\n\x81 mb_regex_encoding( "SJIS" );

エンコーディングを利用した攻撃が可能なマルチバイト文字を取り扱っている場合、利用している正規表現関数とその設定に注意が必要です。これはよくあるマルチバイト文字を利用して特殊文字を無効化させる方法ですよね。マルチバイト文字を取り扱っている場合、正規表現でバイナリマッチを行うにはASCIIにしてからマッチさせないとならないです。このことを書いていないのは不親切・不十分と言えるので追加します。

mb_regex_encoding( "ASCII" );



> また、preg_match() を使用したコードが不十分であるとのことですが、もう少し詳しく教えていただけませんでしょうか。

正規表現関数は元々ライン志向の処理系です。ですからPCRE(preg_matchが利用しているPerl Compatible Regex Library)は行単位で処理します。意図した通りの動作をさせるにはMultilineモディファイア(m)か$をデータの末尾にマッチさせるDモディファイア(PHPのみのオプション)を使用しなければならないケースを紹介したかったのですが、例が悪かったです。

mb_eregi('<\\?php', $image) -> mb_ereg('^.*<\\?php.*$', $image)

preg_match('/<\\?php/im', $image) -> preg_match('/^.*<\\?php.*$/im', $image)

に修正しておきます。ありがとうございます。

蛇足ですが、デフォルトのmbregexは^->\A, $->\zへの書き換え、正確には\Zも\zと取り扱われます。(つまり「^.*hoge.*$」でデータ全体がマッチ対象となる)mbstringが書き換えるのではなくonigurumaのオプションが設定される。oniguruma内部で^,$の取り扱いが変わる、を行うオプションが有効になっているのでpreg_*と違う動作になります。設定はmb_regex_set_options()で取得・設定できます。デフォルトは"pr"で、シングルラインおよびマルチラインオプションを有効にしたRubyスタイルの正規表現になります。

正規表現は便利ですが微妙な動作の違いなどで困った事になったり、あまりよく考えていないとチェックできないケースを紹介しようとして今回のように間違った正規表現になってします... 最近はバリデーション用ばかり書いているので行に関連するメタ文字を使わないとデータ全体にマッチするの失念していました。最初は^$を書いていたのですが、長くて分かりづらいと思って消してしました。正規表現は簡単な物でもテストしないと... 特に半分寝ながら書いているときは...
2007/06/26 @ 03:35
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> exifを使うと攻撃用のPHPコードをホスティングさせられる事を防ぐには”<?”を”< ?"とスペースを強制的に入れるなどの対策が必要です。

ところでこの画像内のテキスト情報を使った場合に発生する脆弱性はexifのテキスト情報をWebで参照できるようにした場合にJavaScriptインジェクションを行う手法として紹介されたと思います。PHPの攻撃用コードをホスティングさせる方法として紹介された例や攻撃例は知りません。ここまでテキストにスクリプトが含まれているかチェックする必要があるか意見が分れるところだと思います。最新のPHP5系ならリモートスクリプトのインクルードはデフォルト無効に設定されているので、チェックなしで良しとするべきかも知れません。

2007/06/26 @ 04:29
コメント from: teracc [訪問者] メール
teracc>GIF、PNGはロスレス圧縮を利用していますがバイナリ部分は圧縮されているのでこの部分にデータがコードだとすると解凍に失敗します。ヘッダがおかしくても変換に失敗します。仮にフォーマットに大きなパディングがありそこにコードが埋め込める場合でも普通のコードであれば変換するとこの部分のコードも削除されるはずです。

GIFヘッダのGlobal Color Mapなどに攻撃コードを仕込む方法があります。そのようにして作られた画像は、画像形式として正当です。ですので、PHP(GD)でGIF→PNG→GIF変換しても変換エラーも出ず、攻撃コードが削除されることもありませんでした。

画像形式変換が、攻撃コードを削除することがあるとしても、それはたまたま削除されたくらいに思った方がよいと思います。形式変換は、攻撃コードを排除するために作られたものではないですから。

>しかし、自分のサイトだけ守れば問題なし、という考え方には賛成できません。ウィルスを含んだファイルを公開していても問題なしと言えないと思います。

脆弱性のある他のサイトまでは守る必要はなく、また多くの場合は守ることも出来ない、という意味で書きました(ウィルスの話は、リモートインクルードとは別の話で、長くなりそうなので、書くのは控えます)。

>exifを使うと攻撃用のPHPコードをホスティングさせられる事を防ぐには”<?”を”< ?"とスペースを強制的に入れるなどの対策が必要です。

テキスト部分以外にも <? は含まれる可能性があります(攻撃の意図の有無に関わらず)。10KBのランダムなバイナリファイルであれば、約15%の確率で <? が含まれます。画像ファイルを壊すのがこわいです。

>ところで<?や<%がスクリプト開始タグとして利用できる場合はこれらもチェックしなければなりません。

<script language="php">というパターンもありましたね。使っている人を見たことないですが。

2007/06/26 @ 13:34
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> GIFヘッダのGlobal Color Mapなどに攻撃コードを仕込む方法があります。そのようにして作られた画像は、画像形式として正当です。ですので、PHP(GD)で GIF→PNG→GIF変換しても変換エラーも出ず、攻撃コードが削除されることもありませんでした。

なるほど。参考になります。Global Color MapとはGlobal Color Tableのことですね。そのまま渡されるようなデータ領域がある場合、バリデーションに使うには無理があるようですね。GDとモジュールのコードを時間があるときに読んでみます。元々バリデーション用に作られた物でなくても今ではバリデーションに使われている物は多くあります。GDがバリデーションに使えるようになると助かるのですが、もう開発が終わっているライブラリなので無理でしょうね。

GIFの定義では

19. Global Color Table.

a. Description. This block contains a color table, which is a sequence of
bytes representing red-green-blue color triplets. The Global Color Table
is used by images without a Local Color Table and by Plain Text
Extensions. Its presence is marked by the Global Color Table Flag being
set to 1 in the Logical Screen Descriptor; if present, it immediately
follows the Logical Screen Descriptor and contains a number of bytes
equal to
3 x 2^(Size of Global Color Table+1).

This block is OPTIONAL; at most one Global Color Table may be present
per Data Stream.

とあるので削除してしまうオプションを付ければ問題がなくなるのかな?しかし、GDもわざわざ(?)情報を保持してPNGまで持って行っているのですね。ざっとPNGの定義も見てみましたが、どこに保存されるのかいま一つ分かりませんでした。コードを見た方が早いかも知れません。

> <script language="php">というパターンもありましたね。使っている人を見たことないですが。

知ってはいますが私もよく忘れられるものです。このパターンはいつでも使えますからチェックするなら必須ですね... 元々イメージファイルのバリデーションに正規表現は無理があるので、PHP専用でなくもっと一般的に使えるバリデーション方法がないと困りますね。

> テキスト部分以外にも <? は含まれる可能性があります(攻撃の意図の有無に関わらず)。10KBのランダムなバイナリファイルであれば、約15%の確率で <? が含まれます。画像ファイルを壊すのがこわいです。

さすがにバイナリ部分に<?を探すのはちょっと無理がありますね... ショートタグは無効にして<?phpと<script language="php">を探さないとダメですね。GIFもPNGもいろいろテキストを入れることができるので、PHPの言語仕様的に他のサイトを守るのは難しい(攻撃の踏み台にされることを防ぐのは難しい)ですね。ただ、これらのテキスト情報はチェックする気になればできない事もないです。他のサイトの為でなくてもローカルインクルードバグに備えてチェックしておいても良いかも知れません。
# 攻撃目的以外で<?phpとか、<script>とか、exif, png等のテキ
# スト情報に入れるとは思えないので、検出したら「ファイル形式
# に問題があります」とエラーにしてしまっても良いと思います。
# XSSをブラックリストで完全に対処するのは無理なので、攻撃
# されかけた事を記録する為だけに検出すべきで、出力する場合
# は適切にエスケープしてから出力しなければならないです。

結局は自分が使っているグラフィックスライブラリの癖や一時的に変換するフォーマットなどで変換してもバリデーションできない場合がある、と言うことですね。こういう時は最も単純なBMPとかに変換して戻すと大丈夫かもしれません。ざっと仕様を見たところ、さすがにBMP形式はテキスト情報は無いようです。

と言う事でGIF->BMP->GIFを勧めることにします。いろいろ指摘頂いて助かります。この場合にも問題がある時には教えて頂けると助かります。
# 自分のコードもBMP経由に変更しないと

しかし、この方法はBBSのアバダ程度なら問題ないですがアルバムアプリで採用するにはかなり問題があります。普通のデジカメはexif情報を付けて保存していますが、これが全部なくなるとユーザは耐えられないでしょうね。圧縮率を微調整するとExif情報はそのままでバイナリデータ部分に含まれた攻撃用コードを除去できるかも知れません。

いづれにせよ「ちょっと書いてみる問題」を超えてきちんとリサーチしないとならない問題ですね... 毎度の事ですが気軽にさらっと書いたエントリに爆発的にアクセスがあったりするのでブログ書きは気が抜けない...

ググるとすぐに
http://hul.harvard.edu/jhove/
が見つかりました。GIF,JPEG,PDF,TIFF,UTF-8などのフォーマットに対応しているそうです。攻撃用コードの埋め込み対策にどの程度使えるものなのか調べてみる価値がありそうです。GIFのGlobal Color Tableを利用した攻撃は検出できないように思えます。JPEGが妥当なフォーマットかチェックするには十分使えるかも知れません。
2007/06/26 @ 16:21
コメント from: teracc [訪問者] メール
teraccとりいそぎ。。。

BMP変換でも、攻撃コードは削除されないと思います。BMPでもColor Table相当のパレット情報を使っているので、普通に変換する場合は、GIF→BMP→GIFでそのままColor Table情報は引き継がれると思います。
2007/06/26 @ 17:56
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> BMPでもColor Table相当のパレット情報を使っているので、
ありがとうございます。後で調べてみます。(GIF→PNG→GIFでNGなケースも試す時間がない..)やはり、ソースコードとデータを照らし合わせて引き継がれるテキスト情報がどうなっているか確認する必要がありますね。GIF→PNG→GIF変換の場合、Global Color Tableのテキスト情報(攻撃コード)はそのまま変換後のGIFに残ってしまったようですが、どのようなファイルでテストしたかは想像できますが、テストに使ったファイルのURLかメールで送っていただけませんか? 思っている形式と違うファイルでチェックしても時間ばかり必要なのでお願いします。

まとめると画像ファイルをバリデーションする目的には

0.画像ファイルとして妥当なファイルであるかチェックする
1.スクリプト系言語の攻撃コードが含まれていないかチェックする
2.不正な画像ファイルにより画像ライブラリの脆弱性を攻撃するコードが含まれていないかチェックする

があると思います。

0.は拡張子、ファイルマジックをチェックした後、画像別の形式に変換してみて問題なければ概ね問題なしと考えられると思います。しかし、普通画像ファイルのデコーダは回復可能なエラーなら無視してデコードを続けるので変換ができるだけでは不正なデータが含まれている可能性は排除できません。

1.はどのレベルまでするか?は議論の余地がある部分ですが、圧縮をサポートする画像ファイルで0のチェックが終わっていれば、デコーダにより正しくデータがデコードできるれば少なくとも圧縮データ部分にはスクリプト系言語の攻撃コードは含まれないことが保障できます。(デコード後に攻撃コードが作れても意味がない。デコーダは致命的なエラー以外はエラーを無視するか警告するだけで処理を中止しないと考えてよいのでオーバーフロー攻撃は無いとはこの時点では言えない)

残りはテキスト系のデータですが、PHPやJavaScriptの場合、作者などのテキスト情報を攻撃コードとして利用可能です。この外にColor Table等をデータをテキスト形式で保存している画像ファイルの場合、これらもチェックするか削除する必要があります。

PHPのGDネイティブの画像形式の構造体を見ると特にテキスト情報を保持する要素が無い(pixelとアンチエイリアス以外は整数型)が無いのでどこか別の場所でテキスト情報を保持しているのでしょう。斜め読みしただけだとGDネイティブの形式すればテキスト情報は保存されないように見えます。テキスト情報が無いファイル形式に変換後に元に戻すとテキストは無くなっているのでスクリプト系言語の攻撃コードが無いことを保証できるようになります。

2. は普通のデコーダはエラーは無視するので攻撃コードが含まれていても変換してエラーが無いことを確認してもあまり意味がない。別形式に変換したデータを元に戻すことにより多くの攻撃コードは削除できると考えられるが画像ファイルのパラメータである整数値が妥当な範囲に変換されてるか、などはライブラリ次第なので完全な安全性保障はできない。ただし、そのままアップロードされたファイルをダウンロードさせるよりははるかに安全といえます。

画像ファイルの攻撃にはデコーダのバグを攻撃する方法が多いので、バグが無いデコーダでデコードしてエラーを除いたファイルを作ればかなり安全性が向上すると考えられます。ただし、利用しているデコードコードにバグが無いとも限らないのでより安全にバリデーションするには専用サーバを用意する方が良いです。

GDについてくるGDネイティブ形式のコードをざっと見た限りではこの形式でイメージを作くれば0から2の要件を満たすように見えます。
2007/06/27 @ 06:04
コメント from: teracc [訪問者] メール
teracc画像はメールでお送りしました。

その画像をWindows環境のGIMPでGIF→BMP→GIF変換を掛けてみましたが、攻撃コードは消えませんでした。

Color Tableは、テキスト情報ではなく、バイナリ情報です。GIFは最大で255色まで使うことができますが、そのそれぞれの色を3Byte(RGBで1Byteずつ=1677万色)で表したもので、最大255*3=765Byteのサイズを持ちます。GIF、PNG、BMPも同じような情報を持っていて、画像データとしては欠かせない情報です。

#なお、GIFのGlobal Color TableがOPTIONALなのは、Local Color Tableで代用できるからだと思われます。Color Table自体は、画像を表現するために必要なものです。

Color Tableに仕込まれた攻撃コードは、意図的にColor Tableの並びをシャッフルするなどしないと無効化できません。通常の画像変換ソフトは、わざわざシャッフルするようなことはしないと思います。

Color Tableをシャッフルしても、それ以外のところに、巧妙な形で攻撃コード埋め込むことは可能でしょう。例えば、画像サイズはGIFではX方向=2Byte、Y方向=2Byteの合計4Byteで表現されますが、4Byteあれば「<?/*」のようなコードを埋め込むこともできます(16188 x 10799 というかなりデカイ画像になりますが)。

もちろん、サイズ以外の部分にも、例えば本体の画像データの部分に、圧縮後に「<?php」が現われるようなデータを作ることは、画像データ構造と圧縮アルゴリズムの知識が少しあれば可能でしょう。

結局のところ、画像形式としての妥当性を確認し、コメント部分などの付加的なテキスト情報を削除するだけでは、原理的にPHPコードの埋め込みを避けることはできないわけです。かといって、画像ファイル中に、「<?」「<?php」などのパターンを持つものを禁止する方法だと、攻撃の意図がない正常な画像が誤って排除される場合が出てきます。

最初の話に戻ると、PHPのリモートインクルードの脆弱性は、脆弱性のあるサイトで直すべきです。もしも、攻撃コードのホストを簡単かつ完全に防げるのであれば、ホストする側での対策を薦めるのは妥当だと思いますが、簡単で完全な方法はありません。

ですので、自身のサイトにリモートインクルードの脆弱性を持たないようにすることだけが、Webサイト開発者に必要なことだと思います(XSSの問題は置いておくと)。そのために開発者がすべきことは、アップロードされるファイルの拡張子を管理する(あるいは適宜サーバの設定をする)だけです。

2007/06/27 @ 23:31
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiファイルありがとうございます。(今の時点でまだ読んでないですが後ほど確認させて頂きます)

GDのコードを斜め読みすると攻撃に利用できそうなデータはピクセルデータのみが受け渡されている部分までは確認しました。つまり、PNGの作者やJPEG, TIFFのexif, GIFのGlobal Color Table等のテキストデータは引き継いでいません。画像に含まれたテキストデータはプログラマが意図的に再現させなければ全て除去されます。(GIF規格によるとGlobal Color Tableはテキストデータとなっているのでそう仮定しています。実際にどう利用されているか理解するまでGIFに詳しく無いです)

バイナリのColor Tableの事は画像ファイルの基礎知識の一つなので知っています。以下になぜ私がバイナリのColor Tableが変換により攻撃に使えなくなる、と考えているか書きます。teracci2002さんには必要ないと思いますが、グラフィックス画像の知識がない方でも分かるように書きます。

攻撃コードを埋め込むの単純にテキストを埋め込むのは簡単です。例えば、2^24色のうち2^16色が使えるとしてこれを必要な色だけColor Tableに入れるとして簡単に2^16文字のテキストデータを埋め込むことがでます。これだけのコードを入れられれば有用な攻撃コードを埋め込むのは簡単です。

ファイル形式の変換による防御に対しても攻撃を行うには、ピクセルデータから攻撃コードを再生成できるようにピクセルデータを構成しなければなりません。これはteracci2002さんのコメントにも書いてありますが、これは非常に難しいです。まず各Color Tableの値は、2^24色なら3バイト、2^32色だとしても4バイトのアライメント単位でユニークになっていなければなりません。ユニークでないとピクセルデータからColor Tableを再生成する場合に攻撃コードが再生成さません。この制限からピクセルデータに長い攻撃用文字列を埋め込むのは現実的ではありません。

コメントに記載されているように非常に短い文字を再現させる、たとえば<? /*, <?php /*、であれば可能と考えていました。(Colorコードもユニークにできるので可能)この点に異論は無いです。もしカラーコードがユニークでなければならない制約の上で、有用な攻撃ができる程度のテキストを再現できてしまうのであればこの時点で変換による対策は完全でないといえます。

少し話がそれますが、ここまでで重要なことは画像形式に関わらず変換を行えば、PHP以外の言語なら攻撃は不可能になります。PHPのような特殊な仕様を持たない言語にとっては変換は完全な対策と言っても構わないでしょう。(PHPはもともと埋め込み型言語なのでスクリプトの開始に開始タグが必要だが、他の言語はスクリプト全体がコードであるため、最初のブログ本文にも記載していましたが、PHPの言語仕様が特殊なのでPHPは攻撃し易くなります)

これも既にコメントとして記載されている通り、PHPの場合、「<?php /*」等をColor Tableに再現させることにより、それ以後「*/」が現れるまでコードのコメントすることができます。Color Table以降のデータに有用な攻撃コードが書ければフォーマット変換によって「完全に防御できない」ことになります。

ここが意見の異なる部分ですが、GIF、PNGはデータ部分に圧縮をかけているのでデータ部分に有用な攻撃コードを再現させるのはまず不可能だと考えれると思います。まず、圧縮されたデータは言語として必要なトークン単位に分割されたテキストを再現できません。もしそのような事が意図的に可能な圧縮アルゴリズムだとするとかなり劣悪な圧縮アルゴリズムだと言えます。LZWもそこまで劣悪ではないと仮定しています。

このことから、GIF→他の形式→GIFのように変換を行えばPHPにとっても「完全な対策」と言っても差支えない程度の安全性が確保可能と考えています。(ブルートフォースでセッションID盗むことは論理的には可能かも知れませんが現実的には不可能と言う意味で「セッションIDによるセッション管理は安全である」とするのと同じような考え方です)


> 最初の話に戻ると、PHPのリモートインクルードの脆弱性は、脆弱性のあるサイトで直すべきです。もしも、攻撃コードのホストを簡単かつ完全に防げるのであれば、ホストする側での対策を薦めるのは妥当だと思いますが、簡単で完全な方法はありません。

この意見には大賛成です。「他のサイトを守る」と書いたのがいけなかったです。「攻撃の踏み台にされない」と書いておけば議論になるようなことは無かったと思います。

> 開発者がすべきことは、アップロードされるファイルの拡張子を管理する(あるいは適宜サーバの設定をする)だけです。

ここは賛成できません。フォーマット変換により、Webサーバのスクリプティング言語で記述された攻撃コードのみでなく、ウィルス付画像ファイル、JavaScript付き画像ファイルなども排除できるようになります。拡張子を管理するだけでは非常に簡単に踏み台として利用可能になります。ブランドを大切にする企業であれば自分のサイトを攻撃の踏み台にはされたくないはずです。

100歩譲ってフォーマット変換による対策が不十分なケースがいくつかあるとしても、変換という単純かつ簡単な方法で飛躍的にセキュリティが向上するのであれば利用すべきではないでしょうか。

2007/06/28 @ 04:22
コメント from: teracc [訪問者] メール
teracc>GIF規格によるとGlobal Color Tableはテキストデータとなっているのでそう仮定しています。

GIFのGlobal Color Tableはテキストデータでは無いです。GIF規格にもテキストだというような記述は見当たりませんでした。

>この制限からピクセルデータに長い攻撃用文字列を埋め込むのは現実的ではありません。

攻撃コードは、<?php passthru($_POST['a']); ?> のようなもので十分じゃないですか?(お考えのものとは、毛色が異なるかもしれませんが)。

>もしそのような事が意図的に可能な圧縮アルゴリズムだとするとかなり劣悪な圧縮アルゴリズムだと言えます。

これは、圧縮効率の面で劣悪ということでしょうか?

>ここは賛成できません。フォーマット変換により、Webサーバのスクリプティング言語で記述された攻撃コードのみでなく、ウィルス付画像ファイル、JavaScript付き画像ファイルなども排除できるようになります。
>100歩譲ってフォーマット変換による対策が不十分なケースがいくつかあるとしても、変換という単純かつ簡単な方法で飛躍的にセキュリティが向上するのであれば利用すべきではないでしょうか。

そういうことを否定している訳ではないです。私が言っているのは、

1.リモートインクルードの攻撃コードのホストを防止する対策は必須のものではない
2.上記の対策においては、画像ファイルの形式変換は不十分だ

ということだけです。画像形式変換が、各種のセキュリティ対策として意味が無いとは思っていないです。

上記の2については、ご使用のグラフィックライブラリで、送付した画像の変換をしてみて頂くのが早いかと思います(お仕事の合間にでもお試しを)。
2007/06/30 @ 03:01
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 1.リモートインクルードの攻撃コードのホストを防止する対策は必須のものではない
確かに必須としなくても良いとは思います。実際、私も特定多数のユーザが利用するサイト(業務で社員だけが利用するサイト)の場合、アップロードされたファイルの検証は不特定多数のユーザが利用するサイトよりもずいぶん甘い仕様する事が多いです。

> 2.上記の対策においては、画像ファイルの形式変換は不十分だ

自分でもカラーテーブルを使って有用な攻撃方法を考えてみました。sytem("rm -rf")などのDoSやphpinfo()だけ実行させるなどの比較的単純なものであれば、24ビットだと何も考えずに書くだけで再現できますね。画像の作り方も簡単です。防御する側は攻撃する側の立場になって考えるべきなのですが、それが足りなかったです。

> 上記の2については、ご使用のグラフィックライブラリで、送付した画像の変換をしてみて頂くのが早いかと思います(お仕事の合間にでもお試しを)。

確かLZWは行方向に圧縮するので単純なイメージを使えば簡単にエンコード後に文字を作る事が可能かも知れません。どのような攻撃コードになっているか楽しみです :)

ところで、不正なコードを画像から除去するほぼ(?)完全な対策は結構面倒になって(PHPの場合)

1. 拡張子とファイルマジックを確認する
2. 変換してエラーが無いか確認する
3. データをtokenizerで解析する
4. tokenの数を数えてPHPのトークンが3つ以上か判定し、3つ以上だとPHPコードを含むと仮判定する
5. lintモードでコードを実行しエラーがなければPHPの攻撃コードを含むと判定する

と言う感じになると思います。さらに攻撃を難しくするには画像にすかしを埋め込んで、ヘッダとデータ両方に含まれた攻撃コードを無効化する方法も考えられます。この方法でもどのように「すかし」を入れているか分かれば攻略方法も見つけられるかも知れませんが。

4.の「3つ以上でエラー」は「<?php phpinfo() >」は最小限のPHPコード(終了タグ意外に/*を使っても同じ)で3つのトークンが含まれているので3つ以上でPHPコードの可能性があるとしています。偶然PHPのトークンが3つ以上現れ、コードの妥当性をチェックもしているので、ほぼこれで十分でしょう。(追記:開始、終了、コメント、空白、文字列以外のトークンが1つ以上あるか?と言いった感じに判定にした方が精度が良いと思います)

PHP以外のケースを考えるとカラーテーブルにシェルコードを埋め込むなど、いろいろな攻撃方法が考えられます。デコード後のピクセルデータをコードやデータとして利用して攻撃する方法も考えられます。

全てのケースで完全な方法を考えるとなると無理があるので本文を「完全な対策」から「単純な攻撃コードを除去する簡単な対策」に変更しておきます。予想以上に画像ファイルの妥当性チェックには落とし穴があるので非常に参考になりました。

他のサイトの踏み台にされる可能性があるのはリモートからスクリプトがロードできるPHPとJavaScriptです。PHPは上記の方法でほぼ検出できると思います。残りは攻撃用のJavaScriptコードの検出ですがこれはが画像フォーマットも調べてどのように攻撃が可能か調査してからですね。

最近はいたずら目的の攻撃は減少傾向にありますが、例えば有名なアルバムサイトの画像に埋め込んだPHPコードを使って「rm -rf /」を実行させる、などのような攻撃が行われると被害は少数でも「○○サイトの画像を使ってサイトが攻撃させる」のような報道になると思います。愉快犯(もしくは○○サイトを狙った本当のサイバー攻撃?!)にはこれでも十分かと思います。

ところで、一般論として画像ファイルの拡張子だけのチェックだとチェックが甘すぎだと思います。拡張子、マジック、フォーマットのチェックくらいは必須条件として考えた方が良いと思います。拡張子チェックだけだと以前にWikiの脆弱性(データにダイレクトにアクセスできてしまう)が問題になったことがありますが、これと同じ脆弱性も持つことになります。

2007/06/30 @ 04:38

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: totoro [訪問者] メール
totoro日本語ドメインは嫌ざんす
お客さんが設定しろと言うので、設定したんだけど、使い難いのは、うちの責任だと、無茶を言うし・・・・。
どこの事業者でも、同じだと思うんですけどねぇ・・・。
2007/06/23 @ 13:14
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiIDNが使えない責任って、使っている人の責任ですよね...
2007/06/25 @ 10:59

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: iakio [訪問者] メール
iakioところでデフォルトのシリアライザではセッションのキーに使えない文字があるのは誰も気にしてないんでしょうかね(PS_DELIMITERとか)。
セキュリティとは関係無いと思いますが、、、
2007/06/18 @ 18:15
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki初期のPHPセッションモジュールの実装では、全く無制限にセッションID文字列を指定できました。

順次、様々な制限が付け加えられたのですが、私はPHPセッションモジュールは正しい場所で制限を行っていないと考えています。

セッションモジュールはサブモジュールを持つ構造になっているので、基本的には各サブモジュール(セーブハンドラ)で制限するべきと思います。シリアライザやセッションモジュール本体で制限すると、全てのセーブハンドラ用に制限しなければならないですし、本体やシリアライザの制限でセッションセーブハンドラの拡張性が損なわれてしまいます。

私は気にしている一人ですが、あまり気にされていないのでしょうね...
2007/06/20 @ 19:31

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

モデレーション待ちのフィードバック

この投稿にはモデレーション待ちのフィードバックが 1 件あります....

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiローソンチケットのWebサイトは使いづらいですね... JPUGの小山さんがmembers-mlに投げたメールの一部をはりつけました。

---------------------------
ローソンでチケットを購入する方法はいくつかあります。

1) 電話予約

0570-084-003 の自動応答電話
チケット引取り: ローソン各店舗
支払方法: 現金、クレジットカード

2) ローソン店舗内のLoppiで購入

支払方法: 現金、クレジットカード

3) プレイガイドで購入

サブナード地下街総合案内所 (東京・新宿)
日本旅行OMCトラベル碑文谷店 (東京・目黒)
日本旅行OMCトラベルいちかわコルトンプラザ店 (千葉・市川)
日本旅行OMCトラベル金沢八景店 (横浜・金沢八景)

支払い方法: 現金、クレジットカード

4) Webで購入

http://www2.lawsonticket.com/
有料の会員登録が必要
チケット引取り: ローソン各店舗
支払い方法: 現金、クレジットカード

5) 各携帯の公式サービス
有料の会員登録が必要
チケット引取り: ローソン各店舗
支払い方法: 現金、クレジットカード
2007/06/01 @ 15:26

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: きしだ [訪問者] メール
きしだたとえば、エロサイトをでっちあげて、CAPTCHAを自分のものと攻撃対象のものを並べておいて、ユーザーに二つを入力させ、自分のものが解読できていたら、攻撃対象のものも解読できてる可能性が高いですね。
そうすると、人手が安く使えるようになります。
2007/06/05 @ 18:56

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Sparky [訪問者] メール
Sparky興味深く読ませて頂いた通りすがりです。
今回のMoPBで指摘された項目のなかでCVE番号どの脆弱性がいつ修正されたのか?PHPプロジェクトのWebページを見てもわからず途方にくれていました
StefanさんやOhgakiさんの働きかけがあってもなお、他のオープンソースのプロジェクトと比較してセキュリティに関して消極的という印象を受けてしまいます。
2007/04/26 @ 01:47
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki確かに消極的と思われても仕方ないと思います。原因の一つはPHPプロジェクトの進め方にもあると思います。他の多くのOSSプロジェクトと異なりPHPプロジェクトは完全なバザール型で開発が進められています。IRCだけで議論しML、Webで全く話題になっていない事が決まり事のようになっていたりすることもあります。誰かが取りまとめることはあまりありません。(マイナーリリース毎にリリースマネージャを決めてそのマネージャがそのバージョン、たとえばPHP 4.4.xリリースのソースコード整合性を保つ形にはなっていますが、プロジェクト全体として方向性をあまり明確なるようにはなっていません)

MOPBで公開された脆弱性のCVE番号は順次割り当てられていますが、Webサイトの方は更新されていないのでCVEとの関連が分かり辛いです。反対にCVEからMOPBの番号を参照した方が分かりやすいと思います。

2007/04/26 @ 09:36

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki開発者があまりに想像力豊かだと「怖くて何も作れない」となってしまうかも知れません。

周りの環境にまで想像力を働かせすぎると何も作れません。開発者といえどもライブラリやプラットフォームはある程度信用できる物として扱い、ある程度は「鈍感力」で対処する必要があると思います。

基本的には開発者が開発を行っているプロダクトにのみ想像力を働かせればよいと思います。

一般的なセキュリティ対策と同じで、要はバランスです。フレームワークなどに頼りきってはいけませんが、頼っても良い部分は頼り、疑うべき部分は疑わなければなりません。鈍感に対処できる部分は鈍感にならないと、どんなシステムでも開発できません。
# 例えば、SSLが信用できないかも、
# と思っても自分で作る訳にはいか
# ないですから。

しかし、一般的には開発者の多くは「鈍感力」が豊か過ぎだと思います。MOPBを見て頂ければ豊かな「鈍感力」には大きな弊害と危険性がある事を理解できると思います。
2007/03/12 @ 17:33

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiPHPの変数はリクエストの終了時に自動的にクリーンアップされます。これにはネットワーク接続やファイルハンドルなどのリソースも含まれます。mod_phpの場合、これらのリソースの解放をOSに任せることができない(プロセスは継続する)のでPHP独自にリソースのデストラクタを持っています。

#2 0x0020ffd8 in _zval_dtor_func (zvalue=0xb) at /Users/.../.../Zend/zend_variables.c:43
#3 0x00204144 in _zval_ptr_dtor (zval_ptr=0xcbb72c) at /Users/.../.../Zend/z

の_dtor_がデストラクタ関連の関数です。この様なメモリ領域を管理する場合、ヒープ領域であっても、少しでもオーバーフローが発生するとコード実行が可能となる可能性がある事はCプログラマであれば常識だと思います。「Off by One」脆弱性は非常に有名で、エンディアンによって攻撃可能なプラットフォームが変わる事も周知の事実だと思います。「Off by One」がアンダーフローの場合はビッグエンディアン、オーバーフローはリトルエンディアンのマシンで脆弱性が発生する可能性がある事はセキュリティ担当者であれば必須知識の一つだと思います。PHPセキュリティレスポンスチームがこの脆弱性を正しく伝えなかったのはいろいろな意味で問題が大きいと思います。

普段から「PHPは最新版(それもPHP5系)でないと安全に利用できない」と言っていますがこれはそれを証明する非常に良い例です。
2007/03/12 @ 13:22

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakifsyncをしないだけでもかなり速くなりますが、ファイルシステムのシステムコールはかなり重い物が多いです。(特にBSD系のstat等)inodeの処理などはアトミックに行われるので最近のCPUにとってはメモリ上のinode操作でも足を引っ張る事になると思います。

tmpfsを使ったとしてもVFSとtmpfsなどのOSのファイルシステムレイヤーの関数を利用します。ランダムアクセスが少なくなるように設計されたPostgreSQLのWALをtmpfsに置いてもそれほど速くならない事は予想できます。

障害時にテーブルが飛んでしまうような事態にならない程度までディスクアクセスを減らす、というオプションもあってよいと思います。

将来postgresql.confで指定できるようになると良いですね。
2007/03/12 @ 09:33

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki
私たちの考えでは、入力フィルタ(入力の検証と出力のエスケープ)はPHPの再コンパイルの必要がないく、ユーザが容易に修正なユーザレベルのライブラリに属する物だと考えています。


入力フィルタはSanitize(サニタイズ)的な考え方で作られています。Yahooの様に大量の攻撃が毎日ありいちいちログしてられないようなサービス(それで良いのか、と言う議論もありますが...)、安全性を犠牲にしてよいサービス以外は入力フィルタに頼ってはなりません。

セキュリティは入力の検証と確実な出力変換(エスケープ)によって維持できます。サニタイズは「悪い」考え方である事に留意しなければなりません。

2007/03/11 @ 17:20

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki私もPHPのコード/設計が壊れている事を指摘したのに開発者が直さない、と言う経験が何度かあります。

例えばsafe_modeがストリームで作り直された時、callee(ストリームの内部)がsafe_modeでの動作を制御するのではなく、caller(ストリームを利用する側)でsafe_modeの動作を制御すべき、と指摘したのですが直りませんでした。

因みに、これが直されていなかった事とallow_url_fopen/allow_url_includeでURLストリームを禁止してもinclude文にPHPスクリプトをインジェクトできてしまう仕様(というより脆弱性)は関連があります。
2007/03/11 @ 17:29

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki
PHP開発者の間では、多くのアプリケーションがURLインクルードの脆弱性または設計仕様によりURLの読み込みが可能であるにも関わらず、この脆弱性はローカルな脆弱性としています。


私も似たようなやり取りをしたことが何度かあります。どのようなやり取りがあったか目に浮かぶので笑うに笑えません... Stafan氏は数えきれないほど、同類の議論をしたのだと思われます...

スタック変数にコピーするのに長さチェックなしは「お粗末」と言われても仕方ないです。
2007/03/10 @ 04:30

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki「ブルートフォース攻撃ができない」とは十分に長いランダム文字列を使うということです。

$key = sha1(uniqid().mt_rand().uniqid());

など。これでも心配なら

$key = sha1(uniqid(mt_rand(), true).uniqid(mt_rand(), true)).sha1(uniqid(mt_rand(), true).uniqid(mt_rand(), true));

など。uniqid自体もMT RANDを使っていたと思うのですが記憶が曖昧です。

2007/03/10 @ 05:19

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki気になったのでコードを見てみました。以下はCVSのPHP_5_2ブランチのshmopコードです。

PHPのソースコードを一度でも読んだ事がある方はマクロの多さに辟易した事と思います。

リソースの取得もマクロで行っていて、問題に気が付き辛くなっています。


#define PHP_SHMOP_GET_RES \
shmop = zend_list_find(shmid, &type); \
if (!shmop) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "no shared memory segment with an id of [%lu]", shmid); \
RETURN_FALSE; \
} else if (type != shm_type) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "not a shmop resource"); \
RETURN_FALSE; \
} \


shmidはlong(整数型)として関数の引数として渡されています。Zendエンジンのリソースシステムはリソースタイプをチェックする仕組みを持っているのですが、この方法だとリソースタイプのチェックに失敗する可能性がありますね...ブルートフォース、とは言えかなり簡単にどのリソースでも渡せてしまいます。GDを使った攻撃は一つの方法だと考えなければなりません。

PHPのモジュールを書かない方以外には蛇足ですがリソースの取得にはZEND_FETCH_RESOURCE2マクロ(これもマクロです...)を使用します。

例:
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);

Cプログラマとしてはデバッグや可読性から過剰なマクロの利用は避けてほしいと思います。マクロになっていると特にデバッガでは非常に不便です。
2007/03/08 @ 18:45

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiCVE登録されたようです。

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-1375
2007/03/13 @ 01:41

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki共有型Webホスティングサービスを利用している時点でセキュリティに期待するのは無理ですが、間違ってこんなモジュールが共有型Webホスティングサービスで使える状態だったら大変です。

企業がホスティングを利用する(個人ユーザでも個人情報を少しでも収集するサイトを運営する)なら最低限、VPS(Virtual Private Server)からです...

2007/03/07 @ 11:17
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki(訳注:ここまで翻訳した時点でめまいがしそうです...)と訳注を入れていたのですがコメントの方が適切と思われるので移動しました。本当に眩暈がしそうでした。このモジュールは行儀が悪すぎです。「完全に壊れている」と言われてもしかたありません。 しかし、今日訳したMOPB2つは訳してから見直さずに公開して、後で見直してみると「訳が完全に壊れている」状態だったので(意味が違うのではなく直訳が中途半端で意味不明状態でした...)人の事はあまり言えません。#デフォルト日本語コワレテル
2007/03/07 @ 18:53

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki私もmod_securityは使ってます。

WAFは役立たずとは言いませんが、頼ってはいけない、と常々言っています。皆さん大丈夫ですよね?
2007/03/07 @ 10:57
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiCVE登録されたようです。

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-1359

2007/03/13 @ 01:38

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiまだMOPBではallow_url_includeの脆弱性を紹介していませんね。

簡単に解説するとallow_url_include=offでも

include($path.'/default.php');

のようなコードがある場合、$pathにphp://inputと標準入力を利用するように設定できると、POSTメソッドを使用して任意のPHPコードをPHPにインジェクトでき実行させる事が可能になる脆弱性です。(他の件だったりして)

世の中にはregister_globals=onのサーバが多数存在するようなので(レンタルサーバは危ない物が多い)サーバ設定によっては上記のような攻撃は簡単に行えます。allow_url_includeで守っているつもりでも防御にならないです。

自分も含めて、allow_url_fopenだけの頃から、PHPの開発者は上記の脆弱性を知っていたのですが普通は気が付かないと思われます。

とにかく今すぐ状況を改善したい方はopen_basedirを設定する事をお勧めします。
2007/03/06 @ 13:03
コメント from: komura [訪問者] メール
komura以前も同様の指摘をしたような気がしますが、上のコメントの input:// というのは、php://input の間違いでしょうか。

既に、PHP 5.2.1 は allow_url_include が php://input や PHP 5.2.0 で追加された data:// なども対象となるように変更されているはずです。

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/php_fopen_wrapper.c?r1=1.45.2.4.2.3&r2=1.45.2.4.2.4

あと、mbstring.language の設定は、ini_set() で変更しなくても、mb_language() で代用できるため、ほとんど問題にならなかったのではないでしょうか。
2007/03/10 @ 10:06
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiどうもinput:// と書いてしまう癖があるようです。php://input が正しいです。修正しました。毎回ありがとうございます。

MOPBで公開される情報のほとんど全ては昨年末くらいまでには情報提供されていた問題だと思います。(StefanさんがPHPセキュリティチームを離れる、と公表したので11月末~12月初めくらいだったような気がします。それ以前にPHPセキュリティレスポンスチームには「辞めてセキュリティ上の問題を公開する」と言っていたと思います。この為、このころには5.2.1に入った修正の多くCVSに入っているかと思います)基本的にはPHP 5.2.1にすぐアップグレードすればよいのですが、そうできない方も多いので書いておきましたが、バージョンを書かないと読んだ方は5.2.1でも問題があると思いますね。個人的にはallow_url_includeの問題はMOPBがなければ修正されなかったと思います。

mb_language()を使っても内部ではINI用のハンドラを呼ぶようになっているはず(もしなっていない場合、それはそれで問題なのでバグ)なのでini_set()もmb_language()も同じなはずです。

2007/03/12 @ 18:04

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiこの問題は気が付いていませんでした。

phpinfo()の出力はセキュリティ上の脅威です、と言っても使ってしまうユーザは後を絶たないので、デフォルトではローカルホストか同じサブネットしか表示しない&表示した場合はボールド赤字で「DO NOT DISPLAY THIS PAGE ON PRODUCTION SERVER」と書くくらいは必要かも知れません。
2007/03/04 @ 05:04

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki一応念のために書いておきます。悪意のあるモジュールを作るのは非常に簡単です。例えば単純な物を私がコーディングする場合、1時間もあれば悪意をもった用途に利用可能なモジュールを作れると思います。
2007/03/04 @ 04:52

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiもっと効果的な攻撃方法が記載されていないのでコメントします。100%のCPUロードだけでなく、Apacheのプロセスの数だけのシステムロードに設定できます。つまり、200個のプロセスでサービスできるようにhttpd.confが設定されている場合、攻撃者はロードアベレッジを200にできる、と言うことです。

普通のWebサーバならFirewallで同じIPからの連続アクセスは制限しているはずですが、比較的小規模のDDoSでもかなり効果的に攻撃可能です。
2007/03/03 @ 06:24

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki一般的に行われている改ざんチェックなのでアドバイザリには記載されていないですが、メッセージダイジェストを使ってシリアライズした文字列をユーザが改ざんしていないかチェックして防御する事もできます。

チェック用のハッシュを作る
$hash = sha1(serialize($vars).'秘密の文字列');

送信された文字列のチェック
if ($_POST['hash'] !== sha1($_POST['vars'].'秘密の文字列');

2007/03/03 @ 06:02

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiすべての修正について把握している、とは言えない私でも「なぜこれを直さない?」と思える項目が幾つもあります。普通にPHPを利用されている方からすると「信じられない」と考えるかも知れません。StefanさんはPHPとセキュリティの両方に非常に詳しく、これまでに数々のPHPのセキュリティホールを発見・修正しています。FirefoxのhttpOnly拡張を利用してる方も多いと思いますが、これもStefanさん作です。

実はStefanさんは去年12月までPHPセキュリティレスポンスチームのメンバーで、PHPのセキュリティ向上にかなり貢献していました。しかし、愛想を尽かしてメンバーを止めてしまいました。どういった状況だったのか想像できるので気持ちは分かります。

MOPBを機会にPHPセキュリティレスポンスチームがより良い運営を行えるようになる事を願っています。
2007/03/02 @ 14:34

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiところでVistaで改良された機能の一つにバックグラウンドで動作するアプリケーションとフォアグランドで動作するアプリケーションの優先度の調整があります。

アンチウィルスソフトがスキャンを開始したりするとPCが使い物にならないくらい遅くなったりします(実際、Viao Z1ではNorton AntiVirusでもMcAfeeでもスキャン中は遅すぎです)が、Vistaではバックグラウンドのアプリがフォアグラウンドの動作に影響が出ないようになっています。

今はVistaでWindowsLiveのOneCareをアンチウィルスソフトとして利用しています。スキャン中にメールを書いたり、ブログを書いたりしても全く気になりません。

PCを使っていて「アンチウィルスソフトでPC重すぎ」と思っている方はVistaに乗り換えるメリットがあるかも知れません。
2007/02/16 @ 07:10

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki個人的にはSession Adoptionという用語はあまり使わず、Session Fixationと同じ分類の脆弱性としていました。しかし、別の分類として考えた方が脆弱性を理解し易いので分ける事にしました。

定かではないですが
http://www.acros.si/papers/session_fixation.pdf
がたぶんSession Fixation/Adoptionの語源だと思います。

White Paperのタイトルで分類せずにSession Fixationと呼ばれる事が多いよう(?)ですが、分けた方が開発者も脆弱性を理解し易いと思います。
# 直感的にわかり辛い用語を増やすのは良くないと思います
# がこの場合は良いケースかと思います。
2007/02/15 @ 11:39

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiXP->Vistaアップグレードで困っていた現象や問題が改善されていた部分で記載されていないもの:

1.PowerDVD5でDVD再生中に音が鳴らなくなり、映像もコマ送り状態になる問題が解決した模様。(ただし、S/PDIF出力でDTS再生ができなくなったようです。なぜ??)

2. 共有フォルダへアクセスが異常に遅かったPCでもアクセスが速くなった。(WindowsServer2003の共有)レジストリなどの設定を変更したりして微妙に改善していたのですが、XP->Vistaへのアップグレードで普通になった。

アップグレードの際にレジストリを奇麗に掃除しているようなのでレジストリがきれいになった事が原因とも考えられます。しかし、1のPowerDVDが正常に再生できない問題はユーザプロファイルを替えると普通に再生されていたものが問題があったプロファイルを利用しているユーザでも正常に利用できるようになりました。レジストリの掃除が問題解消の理由とは思います。XP->Vistaアップグレードを機に既存の問題も解決するかも知れません。


2007/02/13 @ 17:03
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiS/PDIFでDTS、ドルビーデジタルで再生できない原因が解かりました。サウンドカードドライバはXPとVistaと互換性がある、と思っていたら互換性はない(場合もある?)のですね。

メーカのサイトにはドライバは載っていませんでしたが、チップセットのメーカのサイトにVista用のドライバがありました。これをインストールしたらDTS、ドルビーデジタルで再生できるようになりました。
2007/02/14 @ 09:45
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiアップグレード時にVistaはhostsファイル(windows\system32\drivers\etc)を書き換えて、普通のユーザは変更できなくなっているのを忘れてました。hostsファイルは完全に上書きされて古いファイルのバックアップも(たぶん)作られません。

おかげで結構書いてあったホスト情報が消えてしまいました。

ドメインに参加しているPCでローカルのAdministratorsに所属するアカウントでも編集できませんでした。ドメインのAdministratorアカウントでログインして必要なホスト設定をしました。hostsファイルを書き換えるマルウェアが大量にあり、普通のユーザが編集することはほぼ無いので簡単にhostsファイルが変更できなくなったのもVistaの良い点です。


2007/02/15 @ 11:28

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki試した事がないですが、ステップアップグレード版は別のPCにインストールできるのですかね? 出来たとしてもWindows XP ProfessionalのCDでインストールしてステップアップグレード版のCD Keyで使ってよい物なんでしょうか? ノートPCについてきたWindows Homeは他のPCにはインストールできないような気がします。今はWindows XP Professionalのライセンスは余っている状態なので個人的には困る事はありませんがステップアップグレード版の使い勝手は悪そうです。
2007/01/27 @ 06:02

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

15 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiSHA1がクラックされやすくなった事は、論文が発表されたときに大ニュースになったので知っていたのですが、前のエントリで「SHA1をパスワードに使っている」とツッコミを入れられる前に書いておこうかな、と思いちょっと調べるとちょうど最近Slashdot.orgにまた新しいSHA1がらみのタレこみがあったようです。これはまだよく読んでません。時間があるときに読もう....
2007/01/25 @ 11:20
コメント from: heiwa4126 [訪問者] メール
heiwa4126自分が間違って覚えてるのかもしれないけど、"slat"って"salt(塩)"ではないでしょうか?
2007/01/25 @ 16:25
コメント from: グニャラくん [訪問者] メール
グニャラくんSlatではなく、Saltではないでしょうか。
2007/01/25 @ 18:06
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki最初はsaltと書いているのに後の2つがslatになっていました(汗

ご指摘ありがというございます。
2007/01/26 @ 17:34
コメント from: teracc [訪問者] メール
teraccこんにちは。

http://b.hatena.ne.jp/HiromitsuTakagi/
にも少しかかれていますが。

Saltは、通常はハッシュ値の先頭に平文で付けるものですよね。
(/etc/shadowなどで使われている)。

Saltの目的は、

・同じパスワードが同じハッシュ値になることを避ける
・レインボー攻撃を難しくする

などで、秘密情報という意味合いは薄いように思います。

ところで、パスワードの保存には、Saltと秘密情報の両方を使う方がよいと思います。
ただ、秘密情報をどう安全に保存するか? というのは難しいですね。
2007/01/26 @ 18:41
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。参照数が多いので少し長めにコメントします。

> Saltは、通常はハッシュ値の先頭に平文で付けるものですよね。

古いUNIXでどのように使われていたかは知っています(UNIXの場合、Saltは公開情報なので「ぱっと見ただけで自分と同じパスワードを使っている人が判らない程度」の安全性を提供しているだけです。学生の頃は遊びでクラックプログラムも作ったりもしました。この時Joeパスワードを使っている人が多いのにも驚かされました)が、ここで例示したかったのは「SHA1でハッシュ化」しただけだと辞書攻撃で簡単にクラックされてしまう、難しいパスワードであっても同じハッシュ値となる文字列を比較的簡単に割り出せてしまう、と言うことです。UNIXのパスワードシステムと違って、WebアプリにSaltを使った場合、一般ユーザには公開しなくても問題ありません。(と言うより秘密にしておくべき)このエントリのSlatの目的は「万が一ハッシュ化されたパスワードが漏洩」しても解析できないようにする事です。ですからSaltの位置は場所は決めなければならないですが、最初でも最後でも、途中でも構いません、Saltを使ったマスク処理をしても構いません。
# ところで、少なくとも「辞書攻撃」(dictionary attack)という用語は17,18
# 年前から利用されています。恐らくもっと昔から利用されていたと思います。
# より分かり易い名前ならともかく「レインボー攻撃」と分かりづらい名前で
# 呼ぶのは適切なのか疑問に思います。

多くのセキュリティの指針等でも「平文のパスワードは保存すべきではない」としています。クローズドなシステムでパスワードの安全性が100%保障できるのであれば平文のパスワードを保存しても構わない、といった話になるのですがパスワードは非常に重要な情報なので平文で保存すべきではない、とされています。同じSHA1ハッシュを生成する文字列を簡単に割り出せるのであれば、単純にSHA1でハッシュ化したパスワードは平文と変わらないことになります。

要はパスワードは元々機密情報ですが特に重要なので、参照できないようにする・参照しただけでは判らないようにする・解析できないようする・解析を難しくする、事が必要でその一つとしてSaltがある、と言うことです。

今のところSHA512などは安全と考えても良いですが、将来その安全性が脅かされる可能性もあります。ハッシュ化したパスワードが分かり、Saltも分かっている場合、あまりに単純なパスワードを使用しているユーザの安全性はどのようなハッシュ関数を使っていても守れません。Slatを使っていてもコリージョンを起こす文字列を発見する攻撃を100%防ぐ事ができる訳ではありません。だた攻撃しようとしているクラッカーに対する障壁を高くすることにはなります。

> ただ、秘密情報をどう安全に保存するか? というのは難しいですね。

余分な情報をつけるのは万が一、データベースの情報が漏洩した場合のリスクを少なくする為の方法なので「ハードコードされた秘密の文字列」を秘密にしておくは非常に難しい、と言うより基本的には無理、ソースにアクセスできる人には公開情報なので「ちょっと見た程度では覚えられないくらい長い文字列にする」というくらいの対策しか取れないです。

salt付きでハッシュ化するのが無意味か?と言われるとSHA1でハッシュ化されたパスワードをクラックするツールが数多くある現状を考えると、多少は意味がある、と言えると思います。複数のsaltを使うようにすると更に解析が難しくなります。どこまでやるか?はニーズに応じて、と言うことになると思います。

しかし、このエントリで「論外」としている平文パスワードを保存しているサイトも多いと思います。今日、Adobeストアのパスワードを忘れたのでリクエストするとパスワードがそのままメールで送られてきました... Adobe的にはコレでいいのかな... 他の大手サイトでもパスワード送ってくるサイトありますね... 「大手がそうしているから」と言ってもその方法がお勧めできる方法でない場合も多いです。

とにかく、ないには越した事はないですが万が一SQLインジェクション等でユーザ名とハッシュ化したパスワードの一覧を盗まれても簡単にパスワードを解析できないようにするのは意味があると思います。Webユーザの多くが非常に簡単なパスワードかつ複数サイトで同じパスワードを使いまわしていますから...
2007/01/26 @ 18:57
コメント from: teracc [訪問者] メール
teracc長文のコメントありがとうございます。

ご指摘の通り、レインボー攻撃は一般的じゃない言葉かもしれませんね。ただ、辞書攻撃には、辞書単語を使うだけで、事前にそのハッシュを用意しないタイプの攻撃も含まれると思います。それと区別するためにレインボー攻撃と呼びました(事前にハッシュを用意しておくタイプの攻撃を指す言葉が判りませんでした)。

それから、Salt(ユーザ毎に異なる情報)と、秘密情報(共通の情報)では、その目的が違いますよね。後者のこともSaltって呼ぶんでしょうか?
2007/01/27 @ 21:15
コメント from: Spiegel [訪問者] メール
Spiegelええっと、SHA-1 の脆弱性暴露によって危殆化するのは電子署名等においてです。例えば HMAC などでは今のところはまだ SHA-1 でも大丈夫です。MD5 とかではさすがにダメですが。この辺は NIST の SP800-57 あたりが参考になります。

あとパスワードクラッカーツールは SHA-1 ハッシュ値を解析しているわけではなく辞書攻撃などさまざまなクラック手法を駆使しています。salt は確かに辞書攻撃には一定の抵抗力がありますが万能ではありません。故にパスワード文字列をどう設定するかが決定的に重要になるわけです。
2007/01/30 @ 09:28
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> それから、Salt(ユーザ毎に異なる情報)と、秘密情報(共通の情報)では、その目的が違いますよね。後者のこともSaltって呼ぶんでしょうか?

パスワードに追加の値を含めてる事を総称してSlatと呼ぶのが一般的か?と聞かれると疑問ですね。
UNIXパスワードのSaltは「味付け」の意味で使っていると思います。別の言葉を使うとするとマジック
くらいでしょうか?どちらにしてもこの使い方で一般的に広く使われている用語は知りません。
2007/02/01 @ 08:03
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 故にパスワード文字列をどう設定するかが決定的に重要になるわけです。

その通りですね。
時々パスワードの長さを制限しているシステムを見かけますが、よくないと
思っています。

最近の研究では「センテンスを使ったパスワードは十分に長いランダム文字列
と同程度に強固だ」としていたりします。例えば、

「娘の大好きな番組は二人はプリキュアとお願いマイメロディです」

等とする(実際には英数字で書かなければならないシステムがほとんどだと
思います)と十分に強力かつユーザにとっても覚えやすいです。32文字まで
などと制限するとこのようなパスワードは設定できないです。

2007/02/01 @ 08:09
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> パスワードクラッカーツールは SHA-1 ハッシュ値を解析しているわけではなく辞書攻撃などさまざまなクラック手法を駆使しています。

そうですね。私も昔辞書攻撃するツールは遊びで作った事があります。(学生はいろいろ試してみる物ですよね?違う?)

私が言いたかったのは「SHA1で特定のハッシュ値となる同じ文字列を十分な速さ計算できる」のであれば「SHA1でハッシュ化した"難しい"パスワードも解析される危険性がある」と言うことです。元々パスワード情報は機密情報なので守られていて当然な情報ですが、事故やシステム管理者からの攻撃から守る為、パスワード情報は安全に管理するだけでなく誰も知りえない状態になっているべきと考えています。SHA1ハッシュ関数がその用途にも使われてきましたが役目は終えて、更に強固なSHA2(SHA256、SHA512など)ハッシュ関数を使用する時期ではないかと思っています。
2007/02/01 @ 08:21
コメント from: Spiegel [訪問者] メール
Spiegel「SHA1で特定のハッシュ値となる同じ文字列を十分な速さ計算できる」のではありません。同じハッシュ値を持つ異なる情報を(実時間以内で)探し出せる可能性があるということです。だから電子署名などの局面で問題になるのです。

「SHA-1 から SHA-2 に切り替えよう」という話には同意できますがパスワード認証を例に挙げるのはちょっと違うと思います。

あと、ご存知と思いますが、NIST は SHA に代わる新しいハッシュアルゴリズムを探していて、場合によっては SHA そのものが10年以内にお払い箱になる可能性があります。要は(少なくとも新規のシステムにおいては)特定のアルゴリズムに依存しない設計が要求されているということですね。
2007/02/01 @ 11:26
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki>「SHA-1 から SHA-2 に切り替えよう」という話には同意できますがパスワード認証を例に挙げるのはちょっと違うと思います。

ハッシュ関数は改ざんチェックに利用される事が多く、一番攻撃対象となり易い
のが文書の改ざんと思っています。

このエントリ自体は前のハッシュ化したパスワードの取り扱いを書いたときにSHA-1
を使って説明していたので、実はSHA-1でハッシュ化しただけのパスワードだと解
析されるリスクが高くなっている、と説明することが意図だったので分かり辛かった
ですね。

でもこういった感じでコメントを付けて頂けると判りづらい部分も直せるので
助かります :)

> 場合によっては SHA そのものが10年以内にお払い箱になる可能性があります

MD5から派生した系のハッシュ(その他もですが)は設計自体に問題がある
のではないかと言われていますね...

開発者としては「どれでも良いから誰か信頼できるハッシュ関数作って」という
のが本音です。
2007/02/01 @ 14:40
コメント from: 通りすがり [訪問者]
通りすがり専門用語「salt」の用法が間違っていますので訂正してください。他の人が間違ってこういうのをsaltと言い出していますよ。

http://en.wikipedia.org/wiki/Salting_%28cryptography%29
In cryptography, a salt consists of random bits used as one of the inputs to a key derivation function.

The salt value may, or may not, be protected as a secret. In either case, the additional salt data makes it more difficult to conduct a dictionary attack against for example, a password file, using pre-encryption of dictionary entries.

In some protocols, the salt is transmitted as cleartext with the encrypted data, sometimes along with the number of iterations used in generating the key (for key strengthening).

>より分かり易い名前ならともかく「レインボー攻撃」と分かりづらい名前で呼ぶのは適切なのか疑問に思います。

相手を非難する前に自分の無学を疑わないといつまで経っても自分の間違った知識に気づけませんよ。以下を読んでください。

http://en.wikipedia.org/wiki/Rainbow_tables
2007/02/09 @ 10:29
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> 専門用語「salt」の用法が間違っていますので訂正してください。他の人が間違ってこういうのをsaltと言い出していますよ。
>
>http://en.wikipedia.org/wiki/Salting_%28cryptography%29
>In cryptography, a salt consists of random bits used as one of the inputs to a key derivation function.
>
>The salt value may, or may not, be protected as a secret. In either case, the additional salt data makes it more >difficult to conduct a dictionary attack against for example, a password file, using pre-encryption of dictionary >entries.
>
>In some protocols, the salt is transmitted as cleartext with the encrypted data, sometimes along with the >number >of iterations used in generating the key (for key strengthening).

まさしくこう説明されている事を頭の中では意図しているのですがSaltの説明をしているつもりではなかったのでわかりづらかったようですね。

>>より分かり易い名前ならともかく「レインボー攻撃」と分かりづらい名前で呼ぶのは適切なのか疑問に思います。
>
>相手を非難する前に自分の無学を疑わないといつまで経っても自分の間違った知識に気づけませんよ。以下を読んでください。
>
>http://en.wikipedia.org/wiki/Rainbow_tables

こういうテーブルをレインボーテーブルと割と一般的(?)に呼ばれている事は知っています。(知らないと思います??)
そういう事でなく、単純な言い換えや直感的にわかり辛い名前もあるので、わざわざわかり辛い方を利用するのはよくない、と思っていると言う事です。レインボーテーブルの場合、少なくとも辞書攻撃の方がずっと前から一般的に利用され、「辞書攻撃」といった方が「レインボーテーブル攻撃(またはレインボーテーブルを使った攻撃)」より直感的に解りやすいと思います。
# 解りやすさとなると個人の感覚の問題もあるので絶対的なものではないです。
# 「レインボーテーブル」という呼び方もずいぶん前からですし。

こういった基本的なことを知らないと勘違いされる時点で書き方の問題があるといえると思いますが、フォーマルに解りやすい解説文を意図している訳ではないので、適宜行間を読んでください。

今回は誤解(書き方の問題)と思いますが、間違っているのでは?と思われる点へのツッコミはいつでも大歓迎です。
人は間違えるものですし、完璧ではありません。
完璧ならとっくにソフトウェアは安全になってます(苦笑
2007/02/12 @ 00:21

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki知合いに話してみると「WSHから拝借している」との事でした。WSHはほとんど使ってないので気が回りませんでした。

2007/01/23 @ 17:45
コメント from: iakio [訪問者] メール
iakiosha1ならcontrib/pgcrypto/という手もありますね。
2007/01/23 @ 18:01
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakipgcryptoも良いですね。リビルドしないで済む方法なのでこちらにしました。(と言うか、ビルド必要と思っている(いた)のですが必要ないとか?だったりして(汗
いっそのことハッシュ関数などは標準関数にしてしまった方が便利ですよね。
2007/01/24 @ 19:56
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiところでSHA1でハッシュ化されたパスワードを解読するのは更に容易になったようです。

http://it.slashdot.org/it/07/01/20/1936257.shtml?tid=172

今時SHA1で良いのか?という問題があります。

本当はSHA512とか使いたいところなんですけどね....
2007/01/25 @ 10:47

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiそういえばJSONの使い方を解説したページなどでセキュリティについて説明しているページの記憶がないですね。あまり多くのJSONの解説ページを読んでいる訳ではないのでたまたま解説がないページばかり読んでいたのかもしれませんが。

JSON等を使っている方、大丈夫なのかな?と心配になってきました。
2007/01/06 @ 00:08

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

ほそのひでともこの話はこのところホットな話題ですね。

TTL が1日であることが普通だった時代は、キャッシュサーバがコンテンツサーバにクエリする頻度も低かったので、偽の返答がキャッシュサーバを汚染する確率が高くなるにもそれなりに時間がかかっていたことが、いまはそうではなくなっているので、昔の感覚でいると危険ですよ、というとらえかたもできるかと思います。
2006/12/14 @ 20:35
コメント from: さわむら [訪問者]
さわむらDNSキャッシュの設定についてどうしたらいいかと調べていてたどり着きました。ブログ記事を書くのにあたり参考にさせていただきました。TTLは短くすればいいってもんではないことがなんとなくわかりました。ありがとうございました。
2007/11/06 @ 06:20

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiSHARP製の空気清浄機の電源が入らなくなって高松のサービスセンターに修理に持ち込んだ時も驚きました。購入から1年半くらい経っていたので当然有償修理だと思っていたのですが数日後に電話がかかってきて「修理しました。無料です」との事でした。この時は電源ユニットを交換したそうです。
2006/12/14 @ 06:18
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki色々いじっていると何故かアンテナ横のLEDが青色で点灯するようになってしまいました。

気になったのでマニュアルを見てみると(0-24)アンテナマーク横のLEDは電波状態を表示するLEDらしいのですが

緑:強い
橙:普通
赤:弱い
消灯:エリア外

となっています。もしかして青色は異常??
2006/12/14 @ 20:19
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki何故青になるんでしょうね??

しかも、マニュアル通りに電波の強さを表している場合も時々あるようです。
2006/12/19 @ 14:57
コメント from: mezzo [訪問者] メール
mezzoはじめまして。

私も同様に青色点灯の症状が最近出てしまい、困ったなぁと思いググってこちらにたどり着きました。
何の解決策も見つからないまま、ふと気づいて未読メールを既読にしたところ、元に戻りました。自己解決です(笑)

青色表示はメール着信の表示なので、もしかしてみなさん、メールが着信したままになってませんか?
2007/02/16 @ 23:29

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakihttp://d.hatena.ne.jp/hasegawayosuke/20061222/p1

Windowsのセキュリティポリシーを利用した防御方法。制御文字を使用した場合に実行を不許可にする。

ポリシー使わずに設定できるようになってた方が良いですね....
2006/12/24 @ 10:43

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところでバージョンアップしたらページランクが下がったり元に戻ったりします。予測通りの動作ですが、下がったままになったりするのかな?
2006/12/09 @ 23:39

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiプレミアム版を買った知人の評価は「名刺リーダはあまり使えない」と言うことでした。名刺は細かい文字が多くZero3で撮影するとどうしてもブレる、ということもあって普通にスキャナで認識させる方が簡単だそうです。
2006/12/08 @ 17:49

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: ふとし [訪問者]
ふとしvia ドライバは、Momonga Linux 3 リリース後に、unichrome のものに変更しました。
http://www.momonga-linux.org/archive/Momonga-users.ja/msg00276.html
以下のスレッドを見てください。
2006/11/30 @ 21:08
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiふとしさん、情報ありがとうございます。

trunkのドライバの方が新しいですね。trunkのドライバを使ってみるとDRIも動作するのかもしれません。
2006/11/30 @ 22:17

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki最近のFlash Playerの不具合をご存知でない方のためのコメントです。

Flash PlayerにREFERERを改ざんできてしまう問題が最近発見されました。図らずもFlash Playerの問題がREFERERをセキュリティ対策(CSRF対策)の情報として利用するのは不適切であることを証明してくれています。この問題を利用する以外にREFERERに頼ったサイトを効率的に攻撃する方法は思い当たりませんが、以前から「REFERERをいかなるセキュリティ対策に利用するのも不適切」と発言していた私の意見を補完してくれる実例になったと考えています。
2006/11/16 @ 05:02

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: 名無し [訪問者]
名無し> 一般的な環境からなら使えるから(ある程度安全)といって
> セキュリティ対策にREFERERを使用するのは良くない考え方です。

使えない人がいるということと、安全かどうかは別でしょ?
使えない人がいると安全でなくなるのですか?
違いますね。使えない人が出るだけです。
「ある程度安全」という発想がそもそも変です。

> ところでREFEERERでCSRF対策を行っているサイトは
> 同じフォームの重複送信対策はされているのでしょうか?

していないところもあるでしょうが、それは自由ですね。
2006/11/16 @ 02:47

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki時々あるんですよね。allow_url_fopenをシステムレベルの設定ファイルからのみ設定変更できるようにしたりする人とかもいました。

誰も気が付かなかったとは思えないのですが.... バグレポートしましょう....
2006/11/09 @ 18:16

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiheader()を使えば自由にSet-Cookie:ヘッダを送信できるのでPHP 5.2.0未満のPHPでもhttpOnly属性を付けたクッキーを送信可能です。

PHP 5.2.0からsession.cookie_httponly設定が追加されています。1に設定するとhttponly属性がセッションIDのクッキーに設定されます。PHP 5.2.0からsession_set_cookie_params()関数にもhttponly属性が追加されています。
2006/11/09 @ 11:18

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

11 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki自分で調べればよいのですが、例えば.twの場合、

.com.tw
.gov.cn

のようにドメイン種別に3文字使っている国もあります。イギリスはもっとすごくてco.uk等以外に

.ltd.uk
.plc.uk
.sch.uk
.nhs.uk
.police.uk
.mod.uk

などが使用されているそうです。この場合でも大丈夫なのかな?多分考えてあるのでしょう。それともそういう国は無視?そのうち調べてみます。

さらに「.日本語」のようにTLDレベルでIDN(国際化ドメイン)が使えるようにしよう、との動きがありますがクッキーとかはどうするつもりなんでしょうね?近いうちに調べなければ... また宿題が増えました...

# ところで私はもう新しいTLDは不要・無用・有害
# だと思います。IDNや新しいTLDは不要・無用・有害
# でドメインレジストラと詐欺師を儲けさせるだけだ
# と思います。
2006/11/08 @ 10:47
コメント from: 名無し [訪問者]
名無し>IE6ではco.jp等にクッキーが設定できますが、IE7は設定できません。

IE6 のときから co.jp 等に cookie をセットできませんよ?
(第2レベルが2文字のときはセットできないようになっています。)
どういう方法で試されていますか?
2006/11/08 @ 20:29
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

試してみました。IE6だとco.jp等にクッキーは設定できないので本文を直しておきます。

確かfull-disclosureかどこかのMLで「ccTLDにクッキーが設定できるよ」とあったはずなのですくなくともその時点では設定できたのだと思います。探してみたらsecuriteamの

http://www.securiteam.com/securityreviews/5EP0L2KHFG.html

多分これでまだ直っていないと認識したと思います。そこで結構古いIE6SP2で試してみたらco.jpにクッキー設定はできないようです。
# 当時試したはずなので手順にはなんらかの間違いが
# あったのか記憶違いのどちらかだと思います(汗

手元のFirefoxは2.0なので試しにSeamonky 1.0/Gecko 20060130を使ってみたところexample.co.jpからco.jpにクッキー設定が出来ました。少なくとも同時期のFirefoxには同様の問題があったはずです。

と言うことでタイトルを変え本文を修正しました。コメントありがとうございました。


2006/11/09 @ 09:24
コメント from: あーる [訪問者]
あーる細かいことですが、Firefoxの短縮形はFxです。公式サイトでもそれが望ましいとそれています。

http://www.mozilla-japan.org/support/firefox/faq#spell-abbreviate
2006/11/09 @ 10:52
コメント from: 名無し [訪問者]
名無し>ccTLDに関しては最新ブラウザを使っていれば大丈夫なようです。

うーん、Firefox 2.0でも、.co.jp で有効なcookieをセットできてしまいますよ。
確認手順は以下の通り。

1. http://www.yahoo.co.jp/ にアクセスする。
2. アドレスバーに javascript:document.cookie="foo=bar;domain=.co.jp" と入力してリターンキーを押す。
3. http://www.google.co.jp/ に移動する。
4. アドレスバーに javascript:alert(document.cookie) と入力してリターンキーを押す。
5. foo=bar が表示される。
2006/11/09 @ 11:22
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiコメントありがとうございます。

アドレスバーからJavaScriptを実行すると動作権限の関係で誤作動しているのかもしれないのでページにJavaScriptを埋め込んで試してみました。JavaScriptからの設定に対処していないのですね....

HTTPヘッダでSet-CookieするよりJavaScriptからクッキーを設定する方がやりやすい(攻撃しやすい)ですから、これでは対策として不十分過ぎです。

動作からいってどこか変だと思っていましたが、つつくといろいろ出てきそうですね。

> 細かいことですが、Firefoxの短縮形はFxです。公式サイトでもそれが望ましいとそれています。

面白い短縮表記を推奨しているのですね。短縮表記は分かり辛いので普通に表記するようにします。
2006/11/09 @ 12:22
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiしかし、このクッキーの問題は2000年より前、1997とか1998年くらいに指摘されていた問題で、2004年にはOperaを除く(Operaはこの時点で正しく対応していた模様)各ブラウザのCVEまで作ってあるにも関わらずFirefoxは放置したまま... Safari, IEはとりあえず修正しているようなのにこれで良いのかFirefox...

2006/11/09 @ 13:45
コメント from: 名無し [訪問者]
名無し>Operaはこの時点で正しく対応していた模様

Opera も不完全のようですよ。
2006/11/18 @ 00:43
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> Opera も不完全のようですよ。

結局全部危ないということかもしれませんね。
もしかしたらKHTML系が大丈夫とか?

どちらにしてもこの問題はccTLDの管理がドメインによってバラバラなことが原因なので、辞書による対応をしないといつまで経ってもダメ、という状態が続きそうです。
# 関連文書によるとOperaは辞書で対応しているっぽかった
# ですが.jpには対応していないということだったのかな?

上位ドメインのクッキー削除コードは当分消すことは出来なさそうですね。
2006/11/18 @ 05:25
コメント from: 名無し [訪問者]
名無しOperaの使っている方法は、DNSをひけるかどうかというものですよ。
そしてそれでは不十分です。
2006/11/23 @ 06:18
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiなるほど、参考になります。確かに大方使える実装ですね。確実は方法は辞書方式くらいしかないと思います。と言っても辞書が古ければ意味が無いのでどちらも微妙に使えない方法です。サイトを作るほうが自衛い続けるしかないですね。
2006/11/23 @ 17:42

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

4 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiところでSession FixationとSession Adaptionは用語的には違うということですが(実際意味は違いますが)世の中の使われ方に合わせています。他の用語も合わせているかと言うとXSSはJavaScriptインジェクション、CSRF(XSRF)はリクエストインジェクション、トランザクションIDはフォームID(フォームをトランザクションのように扱う仕組みが一般的に使われだす以前から自分はフォームIDと言っていた)等、合わせていない用語もあります。

どの辺りで折り合いつけるかは難しい。

2006/10/28 @ 05:41
コメント from: 名無し [訪問者]
名無し「外部からのセッションIDを受け付けない厳格なセッションID管理」を導入しても、ブラウザ側が Cookie Monster でセッションIDをセットされてしまうので、同じなのではないでしょうか。つまり、session_regenerate_id() を実行する以上のことはやっても仕方ないと。

サイトのドメイン名によるのでしょうが。
2006/10/28 @ 23:39
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki具体的にどのようなシナリオなのか判りませんが、いくらセッションIDを設定できてもクライアント側で設定したセッションIDではセッションは開始されません。(もちろんStrictなセッション管理の場合)

つまり意図的に設定されたIDでのセッションは偶然IDが一致しない限り同じセッションは盗めません。ただし、アプリケーションが対応していないとセッションが開始できないのでDoSは可能になります。

昔、TLDがcom, net, org, edu, milくらいだった頃を想定してブラウザの仕様が決まっている&下位ドメインが設定したクッキーを無視して上位ドメインのクッキーを送る、という状態が悪いのです。明らかにセキュリティ上問題な仕様なのですけど随分長いあいだ放置されています...

# この問題、修正される前に攻撃用のための知識が
# 広がりすぎるとDoSやセッションハイジャックが
# 横行しそうなので静かにしておいたほうが良い
# ような気が....
# とりあえずccTLDユーザ、共有サーバユーザでサ
# ブドメインだけ違うユーザは要注意、とここに書
# いても効果薄いですよね....
# SESSIONモジュール用のmore strict session patchでも
# 書くかな...
# setcookie('PHPSESSID','',0, '/', 'co.jp');
# と同等コードを付けるだけなので。

2006/11/06 @ 12:02
コメント from: 名無し [訪問者]
名無し> 具体的にどのようなシナリオなのか判りませんが、
> いくらセッションIDを設定できてもクライアント側で
> 設定したセッションIDではセッションは開始されません。

そんなことありません。攻撃者がサーバから有効なセッションIDを取得して、それを被害者のブラウザに設定するのです。そのシナリオが session fixation の基本形ですよ。
2006/11/08 @ 21:33

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiIE7とは無関係ですが、大手サイトの不適切なWebアプリケーション設計の例を一つ。最近Amexを使いはじめたのですが確かポイント交換のフォームが2重送信対策が取られていないらしく「リロードしたり、前のページ戻らないでください」と言った旨の表記がありました。フォームの2重送信防止は簡単かつ確実にできるのですが行われていないようです。CSRFに脆弱な可能性も大きいのではないかと推測できます。
# 事前に規約への同意チェックボックスへのチェックが
# 必要なので実際には簡単にCSRF攻撃が可能でないと思
# います。

私はこの仕様を見て「サイト全体として大丈夫なのかな」と少し心配になりました。

2006/10/12 @ 10:23

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: narucissus [訪問者]
narucissus私の場合は別途sequenceを使用せずに、insertした後last oidを取得して、primary keyにしてある列の値を取り出すselectを発行していました。
RETURNINGが使えるようになると余分なselectの発行が必要なくなり便利ですね。
2006/09/29 @ 15:53
コメント from: aoix [訪問者]
aoix先日、初めてPostgreSQLを使ってinsert idが取れないことに驚きました。SELECT currval();でしのぎましたけど、今度から手軽に取れるようになるのですね。
2006/10/05 @ 22:27

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

3 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiこれを書いた直後にメールが来てました。

「(SQLインジェクションが)再現できないのでHEXで問題となる文字列を送って」

といった内容でした。やはりピンとこなかったようです。

ボランティアベースのOSSでは時間がかかってしまう場合もありますから。私自身、遅い、などと人のことは言えませんし...
2006/09/12 @ 05:19
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところで、この問題は全てのPostgreSQLの利用者に影響がある訳ではありません。しかし、攻撃可能な構成や利用方法でPostgreSQLを運用しているサイトも結構ある、と考えられます。あまりセキュリティ問題の常ですが詳しく書くと攻撃(いたずら)に利用されかねないので書かないでおきます。8.1.4のlibpq、pg_escape_encodingを使っていれば文字エンコーディングを利用した攻撃を防げます。
2006/09/12 @ 08:33
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki今、ブログに貼り付けたためパッチがおかしくなっている事に気が付きました。エディタで該当ファイルを編集してください。
2006/09/15 @ 09:18

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: GIJOE [訪問者]
GIJOEAmazonって変な評価が多いですねえ。
私自身はとっても素晴らしい書籍だと思いましたよ。(個人的には殿堂入りレベル)
「PHP言語の入門書」としては、間違いなく「はじめての」だなあ、と思いました。
感覚的にはK&Rに近い、というか。

他の言語経験者の意見だから、参考にならない? でもこのレビュアーも、他の言語経験者っぽいですが。

あと、typoが多いのは事実だと思いますが(笑)、そのほとんどは読む側が補完できるものです。日本語になってない、は失礼じゃないかなあ。

p.s. PHPカンファレンスでは途中で失礼しました。
2006/09/01 @ 18:39
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiいえいえ。こんど時間があるときにゆっくり飲みましょう :)

ところでGIGOEさんは、Wikiでも「Webアプリセキュリティ入門」のページで紹介している「PHPサイバーテロの技法」の著者さんです。私も良い本と思っているのでWikiに紹介しています。

タイポは結構ありましたね!ある読者の方から詳細にレポートしていただいので増刷があれば修正できるのでが増刷なさそうですね。
2006/09/04 @ 21:57

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: くう [訪問者]
くうこんにちは。
FFとIEを共有していて、アンチウイルスソフトをマカフィーにしようかと思っていたんですが、こちらを拝見しました。
マカフィーはやめたほうがいいんでしょうかね?あまり詳しくないので、どれにしようか迷っています・・
2006/09/09 @ 14:22
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiFirewallとAntiVirusだけメインのノートPCで使っていますがそれほど悪くないです。

Norton AntiVirus(NAV)に比べるとメール送信時にエラーで送れないケースが多くあり面倒だったりします。

動作的にはNAVより軽い感じです。ウィルスバスターもテストで使っている限りでは軽い感じです。

各社の製品ともセキュリティ上の問題があったり、トラブルがあったりするのでシマンテック、マカフィー、トレンドマイクロあたりは製品価格、機能、安定性もどんぐりの背比べのようだと思っています。

# マカフィーをインストールするな
# らIEをデフォルトブラウザにして
# おく事をお勧めします。
2006/09/11 @ 11:03

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiそれからmysqli用にクエリを書くと他のSQL標準に準拠しているRDBMSでは困った事になります。

例えば、Zend_Db_Selectのwhere句を生成する文ですが、

$select->where('noble_title = "Sir"'); // embedded value

でもmysqliアダプタを使っている場合は期待通りに動作しますが、SQL標準に準拠してるRDBMSの文字列はダブルクオートではなくシングルクオートで括る事になっています。

この使用例はZend Frameworkのマニュアルに記載されています。正式リリースまでにはマニュアルは修正されるとは思いますが、MySQLユーザの方は気を付ける必要があります。

2006/08/27 @ 16:47
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiPostgreSQLのPDOドライバではまった部分を書いておきます。もし同じ症状になった方がいらしたら教えてください。PDOのPostgreSQLドライバはどう作られているか気にしていなかった(個人的にはDBアクセスの抽象化に興味が持てなかった)のですが、直せるところは直したいと思います。

セッション管理にユーザセーブハンドラを使用します。セーブハンドラはPHPで記述されmemcacheモジュールを利用してローカルのmemcachedにセッション情報を保管します。ネイティブのDBアクセスクラスを利用している場合、問題無くセッション情報が保存されるのですがZendフレームワークのPostgreSQL DPO アダプタを使ってデータベースを操作したのちはスクリプト終了直前に不明なエラーがmian 0行(つまり何処か判らない。見つけるのに結構苦労..)で発生しセッションデータが保存されなかったり、リダイレクトに失敗したりします。ob_start()しているのでボディが先に送信される事は普通では考えられません。

以上の症状からPostgreSQL PDOドライバには何らかのメモリ管理問題がある可能性が高いと考えています。

PostgreSQL PDOドライバで似たような症状を経験した方、どのようなエラーが発生しているかメール下さい。もし、問題を再現可能な短いPHPスクリプトがあれば完璧です。
2006/08/28 @ 10:26

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

2 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgakiところでやはりpg_prepare, pg_executeにはNULLの取り扱いに問題がありますね。

pg_qeury_params(PQexecParams)ではNULLを正しく取り扱えているのですが、pg_prepare(PQprepare)+pg_execute(PQexecPrepared)では文字列として処理してしまいます。念のためgdbで処理を確認してみてもZVALのタイプがIS_NULLの場合、PQexecPreparedに渡すパラメータにはNULLを設定しています。PQprepareのパラメータの渡し方も問題無いようです。
# PQprepareはパラメータの数・タイプを指定せずプリペアできる。
# pg_prepareはパラメータ数・タイプを指定しないようになっている。

今の環境はPostgreSQLのバージョンが古いので新しいPostgreSQLで試す必要があるようです。
2006/08/26 @ 07:34
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki8.0だったので8.1.4に変えてPHPをビルドし直し、バックエンドも8.1にしたのですが結果は同じでした。libpqのコードを読む+簡単なlibpqのプログラムを作って試さないと... pg_query_params(PQexecParams)は普通に動作しているので微妙な違いだと思います。誰もまともにpg_prepare(PQprepare)とpg_execute(PQexecPrepared)を使っていなかった疑いが...
どうなんでしょう?
2006/08/26 @ 07:53

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

5 コメント

コメント from: komura [訪問者]
komurainput:// は php://input の間違いでしょうか?
2006/08/24 @ 01:15
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki> input:// は php://input の間違いでしょうか?

いつもありがとうございます。修正しました。
2006/08/24 @ 02:09
コメント from: aoix [訪問者]
aoixfor security seasons

for security reasons
ではないかと。
2006/08/24 @ 14:11
コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo Ohgaki季節のせいですね。(違
ありがとうございます。
2006/08/24 @ 15:21
コメント from: aoix [訪問者]
aoixまだまだ暑いですからね。(^-^;)
こちらこそいつも有用な情報をありがとうございます。
Zen−Cartではすぐに対策が施されたようです。
http://www.zen-cart.com/forum/showthread.php?t=43579
2006/08/24 @ 17:42

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))

1 コメント

コメント from: Yasuo Ohgaki [メンバー] メール
Yasuo OhgakiとりあえずCVSがまだ直っていないので再度、督促メールを送りました。これでダメなら面倒ですが解説付きPoCを送らないとならないかな...
2006/08/22 @ 14:46

コメントを残す


Your email address will not be revealed on this site.

頂いたURLは表示されます。
PoorExcellent
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))