mirror of
https://github.com/fluxerapp/fluxer.git
synced 2026-09-03 05:10:25 +03:00
fix(api): mask Tor blocks as administrator IP bans (#2023)
This commit is contained in:
@@ -9896,8 +9896,6 @@
|
||||
"GLOBAL_IP_BANNED",
|
||||
"GLOBAL_IP_TEMPORARILY_BANNED",
|
||||
"IP_BANNED",
|
||||
"RESIDENTIAL_PROXY_BLOCKED",
|
||||
"TOR_BLOCKED",
|
||||
"MAX_ANIMATED_EMOJIS",
|
||||
"MAX_APPLICATIONS",
|
||||
"MAX_BOOKMARKS",
|
||||
|
||||
@@ -311,7 +311,7 @@ describe('Auth registration', () => {
|
||||
date_of_birth: '2000-01-01',
|
||||
consent: true,
|
||||
})
|
||||
.expect(403, 'TOR_BLOCKED')
|
||||
.expect(403, 'GLOBAL_IP_BANNED')
|
||||
.execute();
|
||||
} finally {
|
||||
torExitListCache.clearForTesting();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {TorBlockedError} from '@fluxer/errors/src/domains/moderation/TorBlockedError';
|
||||
import {IpBannedError} from '@fluxer/errors/src/domains/moderation/IpBannedError';
|
||||
import {extractClientIp} from '@fluxer/ip_utils/src/ClientIp';
|
||||
import {createMiddleware} from 'hono/factory';
|
||||
import {Config} from '../Config';
|
||||
@@ -13,7 +13,10 @@ export const TorExitMiddleware = createMiddleware<HonoEnv>(async (ctx, next) =>
|
||||
clientIpHeaderName: Config.proxy.client_ip_header,
|
||||
});
|
||||
if (clientIp && torExitListCache.isTorExit(clientIp)) {
|
||||
throw new TorBlockedError();
|
||||
throw new IpBannedError({
|
||||
ipAddress: clientIp,
|
||||
kind: 'permanent',
|
||||
});
|
||||
}
|
||||
await next();
|
||||
});
|
||||
|
||||
@@ -25344,8 +25344,6 @@
|
||||
"GLOBAL_IP_BANNED",
|
||||
"GLOBAL_IP_TEMPORARILY_BANNED",
|
||||
"IP_BANNED",
|
||||
"RESIDENTIAL_PROXY_BLOCKED",
|
||||
"TOR_BLOCKED",
|
||||
"MAX_ANIMATED_EMOJIS",
|
||||
"MAX_APPLICATIONS",
|
||||
"MAX_BOOKMARKS",
|
||||
@@ -25660,8 +25658,6 @@
|
||||
"Your IP address {ipAddress} has been permanently blocked from the Fluxer API by platform administrators. If you believe this is a mistake, contact support@fluxer.app to appeal. Include this IP address in your appeal.",
|
||||
"Your IP address {ipAddress} has been temporarily blocked from the Fluxer API for 24 hours because of abusive or unusual access patterns. We usually do not provide appeals for temporary API bans. Change IP addresses or wait for the ban to expire, and review the Fluxer API access patterns coming from your client.",
|
||||
"Your IP address {ipAddress} has been permanently blocked from the Fluxer API by platform administrators. If you believe this is a mistake, contact support@fluxer.app to appeal. Include this IP address in your appeal.",
|
||||
"This user's IP is banned from this community.",
|
||||
"This user's IP is banned from this community.",
|
||||
"You've reached the maximum of {count, plural, one {# animated emoji} other {# animated emojis}}.",
|
||||
"You've reached the maximum of {limit, plural, one {# application} other {# applications}}.",
|
||||
"You've reached the maximum of {count, plural, one {# bookmark} other {# bookmarks}}.",
|
||||
|
||||
@@ -159,8 +159,6 @@ export const APIErrorCodes = {
|
||||
GLOBAL_IP_BANNED: 'GLOBAL_IP_BANNED',
|
||||
GLOBAL_IP_TEMPORARILY_BANNED: 'GLOBAL_IP_TEMPORARILY_BANNED',
|
||||
IP_BANNED: 'IP_BANNED',
|
||||
RESIDENTIAL_PROXY_BLOCKED: 'RESIDENTIAL_PROXY_BLOCKED',
|
||||
TOR_BLOCKED: 'TOR_BLOCKED',
|
||||
MAX_ANIMATED_EMOJIS: 'MAX_ANIMATED_EMOJIS',
|
||||
MAX_APPLICATIONS: 'MAX_APPLICATIONS',
|
||||
MAX_BOOKMARKS: 'MAX_BOOKMARKS',
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ForbiddenError} from '@fluxer/errors/src/domains/core/ForbiddenError';
|
||||
|
||||
export class TorBlockedError extends ForbiddenError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.TOR_BLOCKED});
|
||||
}
|
||||
}
|
||||
@@ -208,8 +208,6 @@ export const ErrorCodeToI18nKey = {
|
||||
[APIErrorCodes.GLOBAL_IP_BANNED]: 'permissions.global_ip_banned',
|
||||
[APIErrorCodes.GLOBAL_IP_TEMPORARILY_BANNED]: 'permissions.global_ip_temporarily_banned',
|
||||
[APIErrorCodes.IP_BANNED]: 'permissions.global_ip_banned',
|
||||
[APIErrorCodes.RESIDENTIAL_PROXY_BLOCKED]: 'permissions.user_ip_banned_from_guild',
|
||||
[APIErrorCodes.TOR_BLOCKED]: 'permissions.user_ip_banned_from_guild',
|
||||
[APIErrorCodes.MAX_ANIMATED_EMOJIS]: 'invites_and_packs.max_animated_emojis_reached',
|
||||
[APIErrorCodes.MAX_APPLICATIONS]: 'misc_limits.max_applications_reached',
|
||||
[APIErrorCodes.MAX_BOOKMARKS]: 'misc_limits.max_bookmarks_reached',
|
||||
|
||||
Reference in New Issue
Block a user