summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorAmelia Yukii <amelia.yukii@shourai.de>2024-03-30 11:05:58 +0000
committerAmelia Yukii <amelia.yukii@shourai.de>2024-03-30 11:05:58 +0000
commit126248e58d0f4978325ac2b9b2e5775729ffb70a (patch)
tree44b519f0ccc9537057adad4fb658cf186d301028 /packages/backend/src/server/api
parentmerge: always align code to the left - fixes #436 (!453) (diff)
parentsome validation fixes (diff)
downloadsharkey-126248e58d0f4978325ac2b9b2e5775729ffb70a.tar.gz
sharkey-126248e58d0f4978325ac2b9b2e5775729ffb70a.tar.bz2
sharkey-126248e58d0f4978325ac2b9b2e5775729ffb70a.zip
merge: some validation fixes (!484)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/484 Closes #469 Approved-by: Amelia Yukii <amelia.yukii@shourai.de>
Diffstat (limited to 'packages/backend/src/server/api')
-rw-r--r--packages/backend/src/server/api/endpoints/ap/show.ts6
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints/ap/show.ts b/packages/backend/src/server/api/endpoints/ap/show.ts
index 364a4826e3..ca6789a464 100644
--- a/packages/backend/src/server/api/endpoints/ap/show.ts
+++ b/packages/backend/src/server/api/endpoints/ap/show.ts
@@ -113,8 +113,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
@bindThis
private async fetchAny(uri: string, me: MiLocalUser | null | undefined): Promise<SchemaType<typeof meta['res']> | null> {
// ブロックしてたら中断
+ const host = this.utilityService.extractDbHost(uri);
const fetchedMeta = await this.metaService.fetch();
- if (this.utilityService.isBlockedHost(fetchedMeta.blockedHosts, this.utilityService.extractDbHost(uri))) return null;
+ if (this.utilityService.isBlockedHost(fetchedMeta.blockedHosts, host)) return null;
let local = await this.mergePack(me, ...await Promise.all([
this.apDbResolverService.getUserFromApId(uri),
@@ -122,6 +123,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
]));
if (local != null) return local;
+ // local object, not found in db? fail
+ if (this.utilityService.isSelfHost(host)) return null;
+
// リモートから一旦オブジェクトフェッチ
const resolver = this.apResolverService.createResolver();
const object = await resolver.resolve(uri) as any;