From 69a0d9034f3f6006444b936b41bb32abf24a0288 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Wed, 13 Mar 2019 11:21:16 +0900 Subject: Fix #4486 (#4487) --- src/remote/activitypub/kernel/announce/note.ts | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/remote/activitypub/kernel') diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts index 8d090902c0..912936bef8 100644 --- a/src/remote/activitypub/kernel/announce/note.ts +++ b/src/remote/activitypub/kernel/announce/note.ts @@ -5,6 +5,8 @@ import { IAnnounce, INote } from '../../type'; import { fetchNote, resolveNote } from '../../models/note'; import { resolvePerson } from '../../models/person'; import { apLogger } from '../../logger'; +import { extractDbHost } from '../../../../misc/convert-host'; +import Instance from '../../../../models/instance'; const logger = apLogger; @@ -23,6 +25,11 @@ export default async function(resolver: Resolver, actor: IRemoteUser, activity: throw new Error('invalid announce'); } + // アナウンス先をブロックしてたら中断 + // TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく + const instance = await Instance.findOne({ host: extractDbHost(uri) }); + if (instance && instance.isBlocked) return; + // 既に同じURIを持つものが登録されていないかチェック const exist = await fetchNote(uri); if (exist) { -- cgit v1.2.3-freya