refactor: resolveId method, add hostname verification

This commit is contained in:
Julian Lam
2024-02-21 10:58:20 -05:00
parent 42a0924137
commit ed4ccbfccc
4 changed files with 63 additions and 10 deletions

View File

@@ -24,6 +24,23 @@ ActivityPub.mocks = require('./mocks');
ActivityPub.notes = require('./notes');
ActivityPub.actors = require('./actors');
ActivityPub.resolveId = async (uid, id) => {
try {
const query = new URL(id);
({ id } = await ActivityPub.get('uid', uid, id));
const response = new URL(id);
if (query.host !== response.host) {
winston.warn(`[activitypub/resolveId] id resolution domain mismatch: ${query.href} != ${response.href}`);
return null;
}
return id;
} catch (e) {
return null;
}
};
ActivityPub.resolveInboxes = async (ids) => {
const inboxes = new Set();