summaryrefslogtreecommitdiff
path: root/src/queue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-02-08 04:26:43 +0900
committerGitHub <noreply@github.com>2019-02-08 04:26:43 +0900
commite6612f610c4b8a04663e95bc23e4b5e7ae255831 (patch)
tree364d1f52b2db506a2315eb65c4276cc8fed3fad4 /src/queue
parentUpdate CONTRIBUTING.md (diff)
downloadsharkey-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.ts18
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