[9] [DFN[はてなスター]]は、[[株式会社はてな]]の[[Webサービス]]です。

[REFS[
- [13] [CITE[はてなスター]] <https://s.hatena.ne.jp/>
- [1] [CITE[はてなスターをブログに設置するには - はてなスター日記]] ([TIME[2008-12-15 23:19:20 +09:00]] 版) <https://d.hatena.ne.jp/hatenastar/20070707>
]REFS]

* 機能

[FIG(short list)[ [15] [[はてなスター]]
- [[スターコメント]]
- [[引用スター]]
- [[どこでもはてなスター]]
- [[カラースター]]
-- [[カラースターショップ]]
-- [[カラースター交換所]]
- [[スターレポート]]
- [[スターフレンド]]
]FIG]

* 記号表示

[3] 
記号としては[DFN[☆]]
([[カラースター]]は[DFN[★]])
を使うようです。

* JSON API

[4] 
[CODE[https://s.hatena.ne.jp/entries.json]] は 
[CODE[HatenaStar.js]] の初期表示で使われています。
[[スター]]数が多い時に[[数字]]で省略表示されますが、
それに相当する情報が入っています。つまり全件取得には使えません。

[5] 
[[query][URL query]] に [CODE[callback]] 引数を指定すると、
指定された関数名の [[JSONP]] になります。

[6] 
[[CORS]] に対応しており、任意の[[起源]]からアクセスできます。

-*-*-

[7] 
[CODE[https://s.hatena.ne.jp/entry.json]] は省略されずにすべての[[スター]]の情報が入っています。
(ただし [CODE[count]] を使ってまとめられていることはあります。)

[8] 
[[query][URL query]] に [CODE[callback]] 引数を指定すると、
指定された関数名の [[JSONP]] になります。 [[CORS]] には対応していません。

-*-*-

[24] 
[DFN[[CODE[Hatena::Star::Mobile]]]]
は[[はてなスター]]の
[[JSON API]]
呼び出しをラッピングした
[[Perlモジュール]]です。

- [25] [CITE@en[wakaba/perl-hatena-star-mobile: Hatena: :Mobile - A [[Hatena Star]] client Perl module]], [TIME[2023-04-17T08:54:57.000Z]] <https://github.com/wakaba/perl-hatena-star-mobile>

[26] 
[[株式会社はてな]]社内で作られたもので、かつては[[ガラケー]]版[[はてな]]サービス内でも使われていました。


* CSRF

[10] 
[[はてな]]に[[ログイン]]している状態では、任意の[[起源]]の [[JavaScript]]
[[コード]]から、 [[JSON]] [[API]] を通じてその[[はてなID]]
の権限で[[スター]]の情報を取得したり、操作したりできます。つまりこれは
[[CSRF]] 脆弱性です。

[EG[
[21] 例えば好きな [[URL]] に勝手に[[スター]]をつけることができます。
]EG]

[EG[
[16] [[引用スター]]を使っていると、[[引用文]]が外部から取得できることになります。
]EG]

[EG[
[20] [[スターコメント]]を使っていると、コメントが外部から取得できることになります。
]EG]

[11] 
この問題は初期から第三者により報告されていますが、修正されていません。
[[mixi]] の[[足跡]]機能のように使っている外部サイトもあります。

[12] 
一般の[[利用者]]が自衛するには、[[はてな]]から[[ログアウト]]するしかありません。

* HTTPS

[17] [[はてなスター]]の [CODE[s.hatena.ne.jp]] には [[HTTPS]] でもアクセスできます。
しかし[[素のHTTP]]でもアクセスでき、 [[HSTS]] には対応していません。

[18] これは[[スター]]をつける対象のサイトが [[HTTPS]] であっても変わりありません。
また[[素のHTTP]]のアクセスで [[HTTPS]] の [[URL]] のスター情報を取得することができます。

[19] つまり [[HTTPS]] を使って個別のアクセスを安全にすることはできても、
スターの情報 ([[はてなID]]、[[スターコメント]]、[[引用文]]など)
は安全とはいえないことになります。従って、 [[HTTPS]] の [[Webサイト]]では、
[[はてなスター]]を利用するべきではありません。

* 第三者クッキー

[22] 
外部サイトでは、
[[第三者クッキー]]による[[ログイン]]が必要になるため、
[[Webブラウザー]]によっては動作しません。
(最近の
[[Webブラウザー]]は規制を厳しくする方向にあります。)

[23] 
よって外部サイトでは使うべきではありません、というか使うのは困難です。

* メモ

[FIG(amazon)[
はてな
]FIG]

[2] [[SuikaWikiをはてなスターに対応させてみた]]

[14] [CITE[はてなスターSiteConfig作成方法とは - はてなキーワード]]
([TIME[2010-02-20 00:43:41 +09:00]] 版)
<http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BCSiteConfig%BA%EE%C0%AE%CA%FD%CB%A1>
