はてなブックマーク開発ブログ

機能変更、お知らせなど

【開発者向け情報】はてなブックマーク REST API で特定条件下においてブックマークの追加・更新に失敗する不具合を修正しました

はてなブックマーク REST API (以下、本API)は、2013年8月から公開している、サードパーティのアプリケーションからブックマークの追加や取得などの操作を行えるAPIです。OAuthによるユーザー認証を通してご利用いただけます。

本APIの一部の機能において、特定の条件下で利用した際に不具合が発生することが判明したため、修正を致しました。ご不便をおかけし大変申し訳ありませんでした。

不具合の概要

本APIのブックマークを追加または更新する機能において、tags パラメータを複数利用して「日本語のタグ」と「半角英数字のみから成るタグ」を両方含むブックマークを追加または更新するリクエストを送信した際に、本来は成功のレスポンスが返るはずが、エラーレスポンス(401 Unauthorized )が返ってしまっておりました。

不具合の発生期間

本不具合は2013年8月(本APIのリリース当初)から2019年3月4日 午前11時ごろまで発生しておりました。

不具合の原因

本APIへのリクエストの検証のために内部的に利用している、OAuth関連ライブラリの旧バージョンにおける実装が、OAuth 1.0 の仕様を定義した RFC5849 の パラメータ正規化の仕様に厳密には沿っておりませんでした。そのため、APIのパラメータの仕様によっては、リクエストの検証のためにサーバーサイドで生成したoauth_signatureが、クライアントが生成したものと食い違う場合がありました。結果として、OAuthのリクエストの検証に失敗し、本APIでブックマークを追加または更新する機能において、本来は正しく受け付けられるべきリクエストの一部を誤ってエラーを返してしまっておりました。