無料ブログ「rentafree.net」の管理人ブログ

Apache Killer対策をしました

Apache Killerがやばそうなんで、
とりあえずRange無効にしてWEBサーバー再起動しました。

修正版のApacheがきたらアップデートすると思いますんで、
その時は数分サーバー止めることになると思います。

トラックバックとHTML文字参照

トラックバック受信でちと気づいたんだが、
こっちの受信機はHTML文字参照をデコードせずに、
特殊文字を出力しちゃうとまずいので、
いくつかの特殊文字はHTML文字参照に変換する。

なので、
HTML文字参照(&から始まるエスケープされた文字)が送信された場合、
& → &
に変換されるので、ブラウザに文字参照がそのまま表示される。

トラックバックってのは、
フォームエンコードで送られてくるものなので、
そもそも文字参照を送りつけてくるクライアントのほうがおかしい気もするが。
それに気づいたのは、一応「WordPress/2.2」を名乗ってたから、
それが普通の仕様なのかもしれない・・・
ブログ仕様は、MovableTypeの仕様に合わせるべきなのかな?
MTはどうなんだろうか・・・
MovableTypeやらWordPressやら外人の作ったソフトは使いにくくてテストする気にならん・・・

で、こっちの送信機の方も見てみたんだが、
うちの送信機も特殊文字はHTML文字参照で送ってた。
たぶん、特殊文字をHTML文字参照で送ることが間違っていると思うんだが、
どっちが間違いなんだろうか・・・

うち→うち
でも、特殊文字送ったら文字参照になっちゃうぽいんで、
どっちかが間違ってることは間違いないと思う。

まあ、今のところ修正する気はないです。
問題ありそうなら報告お願いします。

<script>のasync属性

defer属性つきの<script>に、async属性もつけることにしました。

変更した<script>は、
*ブログ、Wikiのミニ掲示板
*アクセス解析用HTMLコード

ページの表示を阻害しないためにdefer属性をつけてましたが、
最近はもっと便利なasync属性ってのができたらしいんでつけました。

deferだとページの表示を妨げない代わりにscriptを遅延させるので、
途中に読み込みに時間がかかるscriptなどが存在してページ表示に時間がかかると、
deferなscriptの方が表示が遅れてしまいます。

asyncは遅延ではなく非同期となり、
scriptの読み込みが終わったら即実行されるので、
ページの表示速度に影響なく、
scriptの方もすぐに表示されます。

asyncは非対応ブラウザも多いと思うので、
deferと両方付けてます。
両方つけた場合はasync対応ならasyncとして動作するらしいです。

リンク集サービスを企画していたが・・・

リンク集サービスを企画していたが、
いろいろなタイプのリンク集を作れるように機能を選択できるように考えていたが、

・管理人のみ登録又は申請で登録の選択
・申請登録の場合は、自動登録と確認性の選択
・アクセスランキング
・リンク切れチェック
・管理者と申請者への通知メールを送るかどうか
・相互リンク必須かどうか

てなことを選択できるようにすると、
フォームの統一が難しくてテンプレート編集ができるシステムは難しい。

通知メール送信や相互リンク確認を即時やるとなると時間がかかる。
FastCGIの処理時間がかかるのは避けたい。
CGIと別プロセスでやると、WEBで即完了しないので申請者が不便になる。

リンク切れチェック、相互リンクチェックを定期で回すと、
外部サイトへのアクセスが多くなるので、
外部サイトのエラーも考えるとforkする必要があるし、
サイト数が増えるとすごい負荷になりそう。
アクセスランキングの処理も結構な負荷に。

てな感じで、結構問題ありな感じ・・・

とりあえず今の制作はやめておこうかと。
やるにしても機能絞ったリンク集にするかな・・・

リンク集サービスをつくろうかな考えてます

次はリンク集サービスをつくろうかな考えてます。

・テンプレート編集可能
・管理人のみ登録又は申請で登録の選択
・申請登録の場合は、自動登録と確認性の選択
・アクセスランキング
・リンク切れチェック
ってな感じで・・・

スパム対策のdummyアドレスを変更しました

コメントスパムなどの対策で、
<form>のアドレスが存在しないアドレスになっているんですが、
404エラー発生して解析しにくくなるんで、
http://example.com/
に向けることにしました。

見た目やコメント等のスパム投稿以外に影響はありません。

変更箇所は、
ブログの公式テンプレート、フォームのあるプラグイン、掲示板、公式サイトのログイン不要で表示されるフォーム、
です。

アクセス解析公開しました

まだ試運転ってことにしておきますが、
アクセス解析サービス公開しました。

外部サイトの解析に使えるアクセス解析です。

まだ問題あるかもです。
一応公開してますが、まだいじる可能性大です。
まあ、ブログの方もベータってことにしてますが・・・


製作中にも書きましたが、
ホスト別(ホスト名ではなくホストIP)のカウントはできますが、
インデックスの関係で項目別のユニーク数は表示できません。
表示出来ればいいと思うんですが、
同じインデックス使うのは難しいので負荷考えると難しいです。

他所のアクセス解析サービスだと、
ホストはIPではなくホスト名で表示するところが多いと思いますが、
DNS引くのは負荷増になるのでIP表示です。
国や地域情報も同じくダメです。

画面解像度や色数はブラウザ側処理になるので追加しても負荷増にはならないので、
付けてもいいかな思いますが、とりあえずつけてません。
まあ、要らないと思うんで多分付けない。

ファイル名以外にページ名(<title>から取得)も記録してるんで、
元々ファイル名じゃなくてページ名表示しようと思っていましたが、
ページ名表示機能は付け忘れましたw
まあ、若干負荷増になるので、記録自体やめるかもしれません。

カウント対象項目が1日1万件(1万ユニークや1万ファイル等)を超える場合は未ソートで切り詰められる仕様なので、
1万件を超える場合は正常に解析できない可能性があります。

アクセス解析、近日公開

アクセス解析を作ってますが、
一応出来上がった感じなんで、
もうちょい様子見て明日か明後日には公開しようかな思います。
公開後も、しばらくは試運転ってことにしますけど。

アクセス解析も無料です。

ブログとはサーバー分けてますんで、
解析のほうが負荷きつくてもブログには影響ないはずです。

不正ログイン対策その2

公式サイトとSSLログインにもログイン失敗端末の10秒ブロックを導入しました。

こっちは、
パスワードログインなら問題ないが、
セッションログインだと、確率的にはありえないが、
ユーザー情報をメモリ記憶しちゃうとセッションIDの重複がゼロではなくなって、
無効セッションでのログインができてしまう可能性があるので、
メモリ記憶はなしでデータベース記憶にしました。

ログイン失敗とは、パスワードを利用したログインなので、
セッションIDでのログイン失敗は失敗とカウントしません。

ユーザー端末がウイルスに感染していて正規端末からの不正ログインとかなら別ですが、
セッションIDは端末と一致しないと無効なので、
セッションIDによる不正ログインは考えられません。

不正ログイン対策を導入しました

総当たり攻撃みたいな不正ログインに無防備なんで、
XML-RPCに不正ログイン対策機能を入れました。
ログインに失敗すると最大10秒間ブロックされます。

また、
DBアクセス回数を減らすために、
ログインに成功したらユーザー情報を10分間メモリに記憶することにしたんで、
パスワードを変更した場合最大10分間反映しません。


公式サイトのログイン機能の方もログインに失敗した端末のブロック機能入れると思います。