半端な文字と半端な変換が引き起こすXSS

反応が遅すぎるんですが、@ITで連載中の星野君のWebアプリほのぼの改造計画がどんどん斜め上に向かっていて素晴らしいです。 マルチバイトの落とし穴 マルチバイト文字絡みでXSSと言えば、ひとつ役に立ちそうもない話が。複数ページに渡って入力項目がある場…

テキストボックスならどれでもよかった

いつまでも無くならない単純なXSSを根絶やしにするアイデアを思いついたのです。人気のある歌手に "><script>alert("やっつけ仕事")</script>というタイトルの曲を出してもらうんですよ。そしたらWebで検索やらなにやらするたびにダイアログボックスが現れるサイバーテロが! …

こんにちは、アパッチ

ついにモジュールの開発を始めちゃいます。まずはApacheが立ち上がる事を確認しておきます。 OS Xの場合はシステム環境設定から共有を開き、パーソナルWeb共有を開始するとApacheが起動します。なぜか一般ユーザの権限で開始できます。Apacheが起動できたら …

開発環境を整えたい

Apacheのモジュールを開発するには、当然Apacheが動く環境が必要なわけです。開発環境がWindowsだと色々と面倒な事が起きそうな予感を感じるんですが、その点Mac OS Xを使っているので安心です。 このためにiBookを買ったと言っても過言ではないんですが、そ…

Apacheのモジュールを作りたい

Web上で会員制のサービスなんかを作っていると、いわゆる静的なファイルに対しても会員認証を行いたくなる場合があります。例えば会員のみに画像を見せたいっていう場合です。そういった場合、一般的な解決策としては 会員認証を行えるスクリプト経由で画像…

MySQLのSQLインジェクション問題がPostgreSQLに続いて修正される

変数バインディングを使ってもSQLインジェクション対策にならないで書いた、Shift_JISなどの文字エンコーディングを使用した場合にはmysql_real_escape_string()を使用してもSQLインジェクションが発生しうる問題が修正されたとアナウンスされています*1。 C…

PostgreSQLでSQLインジェクションが発生する可能性がある問題の修正

おおっ!?ひょっとして http://developer.postgresql.org/docs/postgres/release-8-1-4.html 追記 詳細情報が出ています。 PostgreSQLウォッチ】第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響 (ITpro) PostgreSQLがSQLインジェクショ…

MySQLの考えるマルチバイト文字

MySQLのソース*1を見ていて見つけた「MySQLの考える*2マルチバイト文字」です。 バージョンはMySQL-4.1.18を参考にしています。 EUC-JP EUC-JP 1バイト目2バイト目3バイト目 0xA1〜0xFE0xA1〜0xFE- 0x8E0xA1〜0xDF- 0x8F0xA1〜0xFE0xA1〜0xFE 表を横に見て、…

変数バインディングを使ってもSQLインジェクション対策にならない

気がつけば4半期に一度更新するかどうかという状況になっています。 書きたい事があっても、いざ書こうと思っていろいろ調べていると新事実が次々と浮かび上がり、結局書き終えるのに丸一日かかってしまったりして、挙げ句でき上がった文章があれなのでその…

文字コードと符号化方式

世の中には2種類の人間がいます。 文字コードと符号化方式の違いがわかる人とわからない人とが。以前のエントリーでのグダグダは、文字コードと符号化方式との違いがいまいち理解できていなかった点にあるのではないかと思い、違いのわかる人になりたいので…

過去の経緯を無視して利用者のプライバシーも共有するFlashのSharedObject

Webブラウザで利用されるCookieの中にはサードパーティCookieと呼ばれるCookieがあります。 サードパーティCookieとは、例えばhttp://www.example.com/index.htmlというページがあったとして、そのページに貼り付けてある、http://ad.example1.jp/ad.gifの画…

EFSってあんぜんなの?

Windows 2000以降のWindows XP ProfessionalやWindows 2003 ServerにはEFSという機能が搭載されています。この機能を使用するとファイルが自動的に暗号化されて保存されるので、万が一パソコンを紛失した場合でもファイルの中身を見られることが無くて安心安…

IISのバーチャルホストにもWebアプリケーションのセットアップを使いたい

Visual Studio .NETにはWebアプリケーションのセットアップを作る機能が付いています。IISの動いているサーバ上でセットアップを実行すれば、基本的には「次へ」ボタンを押しているだけでファイルの配置や権限の設定が行われ、Webアプリケーションが動作する…

近頃話題のAjaxが525円(税込)

近頃話題のAjaxが東急ハンズ渋谷店の2Bに売ってました*1。なんとたったの525円!社長に「流行のえーじゃっくすとかいうのをうちもやるぞ」とか言われても安心ダネ。 そういえば渋谷のセンター街では「アール・エス・エス」とでっかく書いてあるトラック*2も…

エスケープしてもSQLインジェクション対策にならない

.NET Frameworksを利用するWebアプリケーションでの、文字コードの扱いが謎です。Webページの表示とFormへの入力だけならともかく、DBを使ったりするとよく解らんのです。基本的に.NET Frameworksの内部*1ではUnicode*2が使われていて、生成されるWebページ…

tarが-1を返してきた?

とある場所で使っているGNU tarが終了ステータス*1-1を返してきたんです。そもそも終了ステータスに負の値ってどうなんですかって話ですが、失敗した原因がわからないと困るので-1が何を意味するかtarのソースコードを調べてみたんです。 #define TAREXIT_SU…

便利だけど使われていないLABEL

例えばGoogleで日本語のページを検索のラジオボタンを選択しようとする際、どの辺をクリックして選択していますか? ←ここですか? 日本語のページを検索 ←ここですか?ブラウザにも依りますが、大抵のブラウザでは日本語のページを検索の文字列部分をクリッ…

formの多重送信を止める方法についてのさらに小さな罠

高校の同級生だった友人がパソコンを使い始めた頃、操作の様子を隣で見ているとどうも様子が変なのです。デスクトップのアイコンも、スタートメニューのアイコンも、Webのアンカーリンクも何でもかんでも押せる物はダブルクリックしているのです。 どうやら…