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

パスワードにハッシュモードを追加しました

パスワードリマインダが利用できないと利便性が低下することにより強度の低いパスワードが利用される懸念があるためパスワードハッシュによる認証は行っていませんでしたが、
選択式でハッシュモードにする機能を導入しました。
パスワード変更から設定できます。

ハッシュモードにした場合、パスワードリマインダが再設定になります。
パスワードリマインダによる再設定が行われた場合はハッシュモードは解除されます。

ハッシュモードを設定した場合はサーバーにはパスワードの桁数とSHA1ハッシュが記録されます。
桁数違いでハッシュが衝突した場合は否認されます。


[追記]
パスワードは最大255文字まで有効でしたが、今回の変更で桁数を64進1桁で記録する関係で最大64文字になりました。

桁数の記録はヤメました。
元々255文字までだったことと構想段階ではMD5にする考えだったため桁数を限定した方が衝突しにくいと思いましたが、
ランダム生成機能が16桁固定のため16桁のパスワードが多いと思うのと、短いパスワードの場合のことも考えると桁数を限定しない方が良いような気がしたので。

パスワードにユーザー別に固有の値を追加した上でSHA1を計算するように変更しました。

ブログ編集ページの「領域外画像を読み込まない」

ブログ編集ページの「領域外画像を読み込まない」の仕様を少し変更しました。

これまでは初期状態では常にオフの状態でしたが、
既存記事の編集の際に記事内の<img>に1つでもdata-lazy属性(画像遅延ロード機能)がついている場合は初期状態でチェックされた状態にしました。


あまり使わない機能だと思いますので影響はないと思いますが、
元々data-lazy属性の含まれる記事を編集する場合はブログエディターがロードする際にsrc属性をdata-lazy属性の値にしてdata-lazy属性を削除するようになっていますので、
投稿済みの記事を再投稿する場合に「領域外画像を読み込まない」のチェックを毎回する必要があったので判別するようにした感じです。

ただし、手動でdata-lazy属性を設定して、data-lazy属性のある<img>と無い<img>が混在させ、
その記事を再投稿する場合は毎回設定した上でチェックを外す必要があります。

ブログコメントの仕様を変更しました

node.jsではないかと思うのですがブログコメントにJavaScriptを処理していると思われるスパムがくるので、
node.jsに詳しくないので排除できるか不明ですが、投稿の受理に条件を追加しました。

コメント入力欄にフォーカスが当たらなかった場合、コメント投稿を受理しないようにしました。
効果がないようなら処理を外す可能性があります。

多分無いと思いますが、
blog.jsのコメント機能を利用していないか、コメント入力欄のクラス名が「CommentFormComment」以外になっているテンプレートでは対策しないとコメントの投稿ができません。

また、コメント投稿を行った後にブラウザの戻るを使用して再度投稿を行った場合に2重投稿の制限に掛かるようになっていましたが、
戻るを使用した後にも再投稿ができるようにしました。
ただし、ブラウザの仕様によりますが、戻るを使用した場合は今回追加したフォーカスの検知が外れると思いますので再フォーカスが必要です。

UserAgentをグループ化するようにしました

アクセス解析のUserAgentをバージョン別に表示するとChrome等が種類が多すぎるのでグループ化して表示するようにしました。

バージョン分類を行っているブラウザは、
Chrome、Firefox、Safari、Trident、MSIE(Trident優先)、Opera
で、
バージョンの表示をしないでまとめて表示するようになりました。
クリックするとバージョン別のカウントを展開します。

詳細ログの取得はバージョン別のみできます。

タッチパネル操作時にコンテキストメニューが出ないようにしました

タッチパネルデバイスでブログを編集する際に、
テキスト選択とコンテキストメニューが共に長押しで両立できないので、
ブログエディターでタッチイベントが発生した場合はコンテキストメニューを出さないようにしました。

コンテキストメニューの機能が使えないので機能が制限されてしまいますがテキスト選択が阻害されるよりマシと思います。

検索インデックスの生成処理を変更しました。

随分前から問題点を認識しつつ放置していましたが、ブログ検索インデックスの生成処理を改善しました。

検索リクエストが発生した際にインデックスの生成を、元々は一番古い記事から順に生成していましたが、
記事数が多くタイムアウトが発生した場合に新しい記事を優先して検索した結果を返すべきだと思うので改善しました。
キーワードの初回リクエスト時に最新記事から順に検索して、2回目以降は「新しい方→古い方」の順で双方に向かって検索範囲を広げるようにしました。
また、スペース区切りの単語数が6以上の場合6個目以降無視されるようになりました。

記事数が少なければ1発で全件のインデックスが作成されます。


Wikiの検索にも同様の問題がありますが、ブログに比べて利用者少ないしめんどいから当面放置。

おまけツールにQRコード生成を追加しました。

ブログのQRコード生成機能を使って、入力文字列をQRコード化するの作りました。
公式サイトトップページにリンクがある「おまけツール」のところにあります。


前回の記事でブログエディターを使ってHTMLエディターを作ることを検討していると書きましたが、
HTMLを作成する際に部分的にリッチエディタを使いたい場合というのはありますが、HTML全体を考えると単純なテキストエディタを使いたいと思うので、
使いやすいHTMLエディターを作るのは難しい気がするのでやめる方向にしました。

後は特にネタはない。

おまけツールにパスワードジェネレーターを作りました。

サービスのパスワード変更ページにあるランダム生成機能をベースにパスワードジェネレーター作ってみました。
公式サイトトップページにリンクがある「おまけツール」のところにあります。

記号入りと混在必須ができるようにしたんで、元のスクリプトは原型とどめてないレベルw

あと、ブログエディターを使ってHTMLエディターなんかも設置しようかと考えてます。

ブログエディターを更新しました

将来Firefoxで<menuitem>が使えなくなる可能性がある関係でブログエディターを更新しました。
ブログの記事編集ページで Ctrl+F5 を押すなどしてキャッシュを更新してください。

変更点1
コンテキストメニューで[元に戻す][やり直す]が出る場合、下に水平線を引くようにしました。
この2つのコマンドは履歴を独自に記録しているのでブラウザ標準コマンドとは結果が違います。
エディター機能でタグの編集が行われている状況でブラウザ標準のコマンドを使うと変な結果になるので注意。
Ctrl+ZとCtrl+Shift+Zはブラウザ標準のコマンドをキャンセルして独自の処理が行われます。(今回の更新以前から)

変更点2
<menuitem>が利用できない場合(Firefox以外)、[切り取り][コピー][削除]のコマンドを出すようにしました。
基本的にはブラウザコマンドを利用した場合と同じ結果になります。
<menuitem>が利用できる場合はブラウザ標準のコマンドがメニューにあると思いますので表示しません。
[貼り付け]コマンドはWEBページからクリップボードにアクセスできないので[貼り付け(テキスト)][貼り付け(HTML)]
のコマンドで<textarea>経由でないとできません。
<menuitem>が利用できる場合はブラウザ標準の[貼り付け]コマンドが利用できます。(ただし、アンドゥの履歴が飛ぶので注意。)
Ctrl+V Ctrl+C Ctrl+X などはブラウザ標準の動作になります。


Firefox以外でも右クリックから[切り取り][コピー][削除]が使えるようになった感じです。