風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

はてブ登録画面の背景にブックマーク元記事を表示するGreasemonkey/SeaHorseスクリプト

表題の通りのスクリプトを試作してみました。

Greasemoneky/SeaHorseスクリプト

はてブ登録画面の背景に元記事を表示する

経緯

先日、はてブ登録用の新しいブックマークレットが危険という記事を書きましたが、とはいえ、元記事を見ながらコメント出来るという利点もあるので、ちょっともったいない気もします。

で、「逆に、ブックマーク登録画面の方の背景に元記事を表示させておくというのはどうだろう?」と思い立ったので試してみたわけです。

動作画面


元記事で従来のブックマークレット

javascript:window.location='http://b.hatena.ne.jp/add?mode=confirm&title='+escape(document.title)+'&url='+escape(location.href);

を実行すると……


ブックマーク登録画面に移行しますが、このときに背景に元記事が表示されます。
ついでに、登録フォームも新ブックマークレットっぽくなっています。


登録フォームは新ブックマークレット同様にバーだけにしたり適当な位置へ移動させたり出来ます。
なお、Cookieが有効になっている場合には、次回登録時は同じ位置に表示されます。

問題は…

ちとトリッキーなことをやっているので、少々重いこと、フレーム使用しているページなどに対応していないこと。
というか、そもそもGreasemonkey/SeaHorseを使うこと前提なら、もっといいものを探した方がよいという罠。
例えばQuickBookmarkとか。

ところで

背景ページのリンクをクリックすると、リンク先ページのブックマーク登録ページへと遷移します。
一見、普通にページ遷移したように見えても、あくまでそれは背景で、アドレスは"http://b.hatena.ne.jp/add?mode=confirm..."のまま、ブックマーク登録ページにいるわけですので(登録フォームも表示されたままのはず)勘違いしないよう、ご注意ください。
特に、背景ページにフォームとかがあったとしても、不用意に入力したりしないように。
#え、こっちのほうがよっぽどセキュリティ的に問題ですか?!

改訂履歴

ver.0.01c (2008/12/05):
- バー状態にしたときの横幅を小さくした。
- バー状態から戻るときに画面からはみ出しそうだったら画面内に収まるように調節されるようにした。
ver.0.01b (2008/12/04):
 - ページタイトルを「(元記事タイトル) - はてなブックマークブックマークレット」にするようにした。
 - 動作が若干軽くなった。
ver.0.01a (2008/12/04):
 - 背景ページにOBJECTやEMBEDがあると登録フォームが隠れる問題に暫定対応。
ver.0.01 (2008/12/04):
 - 初版リリース。

はてなブックマークの新版ブックマークレットはやっぱり危険!

高木浩光@自宅の日記 - 新はてなブックマークの登録ブックマークレットは使ってはいけない

で書かれているとおり、使うのは止めるべき、でしょう。

別にこれは、はてなブックマークに限ったことではなく、閲覧しているページにページ内ウィンドウ(擬似ダイアログ)を作成するようなタイプのブックマークレット一般に言えることでしょう。

  • ページ内ウィンドウ(擬似ダイアログ)は、閲覧しているページ(があるサイト)のコントロール下となるため、サイトオーナ側で悪意のある仕掛けを比較的容易に施せる。

にも関らず、

  • ページ内ウィンドウ(擬似ダイアログ)に表示されたページは一見ではURIを確認できない。
  • 正規に提供されているブックマークレットを自ら実行して表示された内容であれば、つい信用してしまう。

ために、悪意のあるサイトによる被害を受けやすくなるものと思われます。

例えばはてブの場合、現状のままでは、少し調べれば簡単に↓のようなページを作れてしまいます。

はてブの新ブックマークレットが危険な例

上記ページでは、ログインしている/いないに関りなく、新版ブックマークレットを使うと偽のログインページが表示されてしまいますが、これをぱっと見抜くのはなかなか難しいのでは?

既に危険性がわかっていて、なおかつ放置したままはまずいと思われます。
根本的な解決策が出てこない限り、すぐに、新ブックマークレットの配布はもちろん、使われた場合にもページ内ウィンドウではなく、普通のブックマーク登録ページにリダイレクトされるようにすべきではないでしょうか?>はてなさん。

単に、ブクマ封じに使うとか出来るだけなら罪はないんでしょうけれど、ねぇ……。

『続きを読む』をその場で読む ReadMore を LDRize に対応

先日のReadMoreですが、『続きを読む』をその場で読むのにわざわざマウスに手をのばしたくない、という場合もありますので、LDRizeにショートカットキーを追加出来るよう、拡張してみました。

(1) ReadMore (ver.0.03以降)
(2) ReadMore Extension for LDRize (ver.0.01以降)
を組合せることで対応出来ます(オリジナルのLDRize(Greasemonkey)LDRize for SeaHorse兼用)。

※Greasemonkeyで使用する場合、ユーザースクリプトの管理画面で、Minibuffer(→AutoPagerize)→LDRize→ReadMore→ReadMore Extension の順に並べてください。

続きを読む