お待たせしました

サーバマシンまた新調しまして。今度はCore i7ですよ奥さん! ていうか更新3年ぶりですよ!

近況とか。

  • 最近はTwitterに出没してます。
  • iPhone 4買いました。WILLCOMとはお別れの予定です。10年使ってたんですけどね。
カテゴリー: 未分類 | コメントは受け付けていません。

理解されないHTMLエスケープ

WASF Times版「サニタイズ言うな!」 by 高木浩光@自宅の日記終わりなきサニタイズ言うなキャンペーン というトラックバックがついている。

このエントリを読むとエスケープという処理が如何に理解されていないか、ということが見えてくる。

誤解1. エスケープによってサーバに帰ってきたときに結果が変化すると思いこむ

「テキスト」として表示される情報は表示された時点で役目を終えますが、<input>や<textarea>の情報はサーバに返ってくるものなので、変更せずに返された場合は可能な限り元の情報と同じとなるようなエスケープ処理を施したい。

サーバに帰ってくるデータは、ブラウザ (ユーザエージェント) がHTMLを解釈し、アンエスケープした後のデータである。例を出そう。

HTML:
<form action="/some/where" method="get">
<input type="text" name="foo" value="&#x41;BC">
<input type="text" name="bar" value="A&#x42;&#x43;">
</form>
結果: GET /some/where?foo=ABC&bar=ABC HTTP/1.1
HTML:
<a href="/some/where?foo=&#x41;BC&amp;bar=A&#x42;&#x43;">blah blah</a>
結果: GET /some/where?foo=ABC&bar=ABC HTTP/1.1

HTMLエスケープはたかだか、出力したHTMLを解釈する時点において効果を発揮するに過ぎない。HTMLパーサはエスケープを入力時に正しくアンエスケープする (データ入力時のアンエスケープ行為)。ユーザエージェントが出力する際に、アンエスケープ後のデータを出力するメソッド (フォームの場合はURLエンコードパーセントエンコーディング) で正しくエスケープする。

鳩丸ご意見番 – URI の中に & を書くべからず も参考にして欲しい (この記事も若干誤解を招くタイトルだが)。

続きを読む

カテゴリー: web | コメントは受け付けていません。

OpenVPNで拠点間VPNを張る

OpenVPN を使ってLAN同士を繋ぐ、いわゆる拠点間VPNを作る。やり方を忘れないためのメモエントリー。

拠点間VPNなので、

  1. Point-to-pointで張り、通すプロトコルはIPだけでいいので、TUNデバイスを使う。
  2. 前に作ったオレオレ認証局 で公開鍵認証を行う。
  3. 拠点甲(サーバ側)のネットワークは 192.168.1.0/24
  4. 拠点乙(クライアント側)のネットワークは 192.168.2.0/24
  5. POINTOPOINT で使うIPアドレスは 192.168.100.1 & 2

続きを読む

カテゴリー: memo | コメントは受け付けていません。

OpenSSLでオレオレ認証局を立ち上げる

いつもいつも忘れてしまうのでメモエントリー。

SMTP, POP3, IMAP4, あとOpenVPNに使いたいので、第四種オレオレ認証局 を立ち上げて証明書を発行する。ユーザーは俺しか居ない。

続きを読む

カテゴリー: memo | コメントは受け付けていません。

サーバリフレッシュ

もいん。

サーバをリフレッシュしました。
これを機会にBlogにすることにしました。
他のコンテンツは少しずつ移行してゆきます。
まだ暫くご面倒をおかけしますがご容赦ください。

わたしの作ったソフトウェアをお探しの方へ: アーカイブ に置いてあります。取り敢えずそこからダウンロードください。m(__)m

メーリングリストアーカイブとか

メーリングリストアーカイブは統合しました。Ruby on Railsを使った書き下ろしです。それぞれのアーカイブはこちら:

カテゴリー: 未分類 | コメントは受け付けていません。