まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2006/11/06(月)Yahoo blog検索のXML-RPC

Yahoo blog検索のXML-RPC

Weblogs.com: API Interfaceの「weblogUpdates.ping」におけるオプショナルパラメーターである3番目、4番目のパラメーター(参考)を送信すると、Yahoo blog検索のXML-RPCインターフェイスは、何も返答せずにコネクションを切ります

adiaryβ12配布物において、Yahoo blog検索に対し更新通知Pingを送信するようにしていましたが、エラーが返されていました。次以降のバージョンでは削除の予定です。

2006/11/06(月)IE7における標準準拠モード

adiary各テーマをIE7で表示テスト

曰く「IE7ではCSSの問題を解決した」らしく、現在配布されている adiary ではその言葉を信用してIE7の場合は標準準拠モードでレンダリングするよう設定されています。日本語正式版がリリースされましたので、実際のところどうなっているのか確認してみました。

konomiテーマの場合

ie7_konomi.gif

記事下側の枠線が表示されません。

shukujoテーマの場合

ie7_syukujo.gif

:after :beforeの擬似要素に対応していないために、名前欄などのカスタマイズが有効になっていません。おまけに「_ hack」(アンダースコアハック)が無効化されているため、本来表示すべき文字も表示されません。またリンクの表示位置がずれまくっていて無惨です。

umiテーマの場合

ie7_umi.gif

固定幅の左右余白が変動するのが本来の動きなのですが、本文部分の左余白が変化せずなぜかスクロールバーが表示されています。また「ログイン」の部分がクリックできなければいけないのですが、マウスをどこにもっていってもクリックできません。

結論

どこの標準に準拠したのか非常に謎です。やっつけにやっつけを重ねてるんじゃなくて、レンダリングエンジンをきちんと1から作り直したらどうかと思うんですが。ということで、adiaryでは今後、IE7はIE6などと同じようなCSS解釈を行う互換モードでレンダリングさせることに決定しました。

なお当然のことながら、Firefox、Operaでは何ら問題なく表示されます。

2006/09/11(月)CSSXSSの問題

CSSXSSとは?

IEがCSSではない{を含む*1テキストをCSSと見なしてインポートしてしまい、あろうことかそのテキストがJavaScriptから操作可能なために発生するセキュリティーホールです。IE5、IE6などに存在します。

検証用コード。

<html><head>
<title>CSSXSS</title>
<style type="text/css">
@import url("./cssxss.txt");
</style>
</head><body>
<h1>CSSXSS</h1>
<textarea rows="20" cols="80" id="cssxss"></textarea>
<script type="text/javascript">
var text = document.getElementById( "cssxss" );
text.innerText = document.styleSheets(0).imports(0).cssText;
document.write("test")
</script>
</body></html>

この例では、cssxss.txt が「{」を含む場合、その中身を<textarea>に表示します。

悪意のあるサイトにアクセスした第3者に対し、既知のURL(例えばmixiなど)へユーザー自身にアクセスさせその結果をJavaScripを用いることで攻撃サイトに送信するなどという使い方をします。BASIC認証、Cookie認証その他あらゆる認証により守られたページも、ユーザー自身にアクセスさせることで突破できてしまうという驚異のセキュリティーホールです。

有効な対策

有効な対策は2つ。1つは、CSSXSSの攻撃をされたくないあらゆるページにおいて{」を「&#123;」にエンコードして出力することです。

もう1つはIE系ブラウザ((IEエンジンを使用するブラウザ))のアクセスを拒否することです。個人的には後者を選びたいのですけど(笑)

*1 : この文字だけであることIE6で確認しました。Shift JISの場合は2バイト目に { を含んでも同じ