diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-02-08 04:26:43 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-08 04:26:43 +0900 |
| commit | e6612f610c4b8a04663e95bc23e4b5e7ae255831 (patch) | |
| tree | 364d1f52b2db506a2315eb65c4276cc8fed3fad4 /src/queue | |
| parent | Update CONTRIBUTING.md (diff) | |
| download | sharkey-e6612f610c4b8a04663e95bc23e4b5e7ae255831.tar.gz sharkey-e6612f610c4b8a04663e95bc23e4b5e7ae255831.tar.bz2 sharkey-e6612f610c4b8a04663e95bc23e4b5e7ae255831.zip | |
Implement instance blocking (#4182)
* Implement instance blocking
* Add missing text
* Delete unnecessary file
* Covert Punycode to Unicode
Diffstat (limited to 'src/queue')
| -rw-r--r-- | src/queue/processors/http/process-inbox.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/queue/processors/http/process-inbox.ts b/src/queue/processors/http/process-inbox.ts index d88f00a098..583e255136 100644 --- a/src/queue/processors/http/process-inbox.ts +++ b/src/queue/processors/http/process-inbox.ts @@ -45,6 +45,15 @@ export default async (job: bq.Job, done: any): Promise<void> => { return; } + // ブロックしてたら中断 + // TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく + const instance = await Instance.findOne({ host: host.toLowerCase() }); + if (instance && instance.isBlocked) { + logger.warn(`Blocked request: ${host}`); + done(); + return; + } + user = await User.findOne({ usernameLower: username, host: host.toLowerCase() }) as IRemoteUser; } else { // アクティビティ内のホストの検証 @@ -57,6 +66,15 @@ export default async (job: bq.Job, done: any): Promise<void> => { return; } + // ブロックしてたら中断 + // TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく + const instance = await Instance.findOne({ host: host.toLowerCase() }); + if (instance && instance.isBlocked) { + logger.warn(`Blocked request: ${host}`); + done(); + return; + } + user = await User.findOne({ host: { $ne: null }, 'publicKey.id': signature.keyId |