先月末くらいから来るようになった。しかも、存在しないブックマークエントリに対してスターが付いていた。
果たして、エントリのないものにスターをつけられるのか?ということでアカウントの乗っ取りも検討してみた。もしかしたら、勝手にブクマ→他のIDでスター付与→ブクマ削除、みたいなことが行われていたりしないか?ということ。
パスワードを変えてみたがやっぱり通知が来る。
調べたら、はてなでも把握しているらしい。
ユーザのプロファイルに誘導して、さらにその先のサイトにアクセスさせることを期待している模様。
ちょっと調べてみた。
私のはてなブックマークはこちらである。
ブックマークのエントリの URL は、このURLの後ろに日付8文字分 (YYYYMMDD)、#bookmark-DDDDDDDDDDDDDDDDDDD (19個の数字) というのが付いたものになっている。今年の2月のエントリでは後ろの数字が短いものもあるのでどういうルールなのかはわからない。
さて、実在する最近2つのエントリの「#」以降の部分はこうなっている。
- bookmark-4677073844352634882
- bookmark-4670330231607003490
で、スターが付いたという通知の「あなたのブックマーク」の部分のリンクの該当部分はこうなっていた。
- bookmark-4677073844352634882
- bookmark-4677073844352634882
- bookmark-4670330231607003490
- bookmark-4670330231607003490
- bookmark-4670330231607003490
- bookmark-4670330231607003490
- bookmark-4670330231607003490
この前の日付部分はその通知が来た日のもの。で、その日に私がブックマークを付けたエントリは存在しない。
見てのとおり、実在するエントリの後ろの部分を持ってきてURLを整えている。
試しに、存在しないエントリとして未来の日付の後ろにこの文字列をくっつけてアクセスしてみた。すると「gust_notch さんのブックマークはまだありません」というページが表示される。URLもそのままでリダイレクトなどはされない。URLとしては有効ということになる。
おそらく、はてなブックマークのAPIでエントリを取得し、適当なURLをでっちあげて、そこにまたはてなスターのAPIでスターを付与したりしているのだろう。
URLの妥当性が必要なのかどうか分からないけど、少なくともスターの付与をリクエストされたブックマークエントリの有無を確認して、無効なリクエストは処理しないようにできないものか?