Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fix mei23/misskey#4748
inboxのサイズリミットが1mb=>64kbになります
AP inboxでdigest headerとbodyとを検証していないのを修正。
AP inboxでhost headerと自ホストとを検証していないのを修正。
HTTP Signatureの署名対象ヘッダに、
(request-target)
,digest
,host
,date
が含まれてない場合はエラーにするように。dateが300秒以上ずれている場合 (主にどちらかの時計が狂っている場合) 弾かれるようになります。
この仕様はhttp-signatureのclock-skewによるもの
https://github.com/TritonDataCenter/node-http-signature/blob/master/http_signing.md#clock-skew
rawBodyの取得について
digest計算のためにJSON parse前の生のbodyが必要になるが、
ctx.request.rawBody
は型定義的に使用できそうに見えるものの、実際はkoa-bodyparserの機能なためそれを使用してなければ使用できません。(現在はkoa-json-body
を使用)koa-bodyparserでもいいものの、JSON parseが回りくどいのと型周りが嫌なので、依存先のco-bodyを使用しています。
また、オプションについてはraw-bodyも見ると良いです。