connect.sidの話

  • privateプロジェクトに限らないので整理したい
  • だがあちこちからリンクされているので、このページは存続させることにした(2023-08-09)

2018-12-17 publicプロジェクトのAPIは単純にGETすればデータが得られるが、privateプロジェクトでそれをやると401になる。(当たり前)

ログイン状態でprivateプロジェクトにアクセスすると、クッキーに認証情報がセットされる。これを使う。

このクッキーはSecureHttpOnlyなのでdocument.cookieを見てもわからない。

To prevent cross-site scripting (XSS) attacks, HttpOnly cookies are inaccessible to JavaScript’s Document.cookie API

Chrome Devtoolsだとここで見れる。

  • image

具体的には”connect.sid”という名前で認証情報が入っている。これを例えばrequestsに渡せば良い。 python

cookies={"connect.sid": "..."}
r = requests.get("https://scrapbox.io/api/pages/...", cookies=cookies) 

このconnect.sidは2018年の今時点で2020年までexpiresしないやつなので当面アクセスできる。 もしうっかりこの情報を漏らしてしまった場合にリセットする方法があるかどうかは知らないので気をつける必要がある。

  • ログアウトしてログインし直したら変わってた

thanks moriyoshi

ScrapboxAPI Scrapbox