mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 18:45:41 +01:00
Add guard on req.ip not being a valid IP address
This commit is contained in:
parent
4a4f590611
commit
162506a6bb
1 changed files with 15 additions and 1 deletions
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import fs from 'node:fs';
|
import fs from 'node:fs';
|
||||||
import http from 'node:http';
|
import http from 'node:http';
|
||||||
|
import net from 'node:net';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import url from 'node:url';
|
import url from 'node:url';
|
||||||
|
|
||||||
|
@ -384,7 +385,20 @@ const startServer = async () => {
|
||||||
// Track the usage of the access token if necessary:
|
// Track the usage of the access token if necessary:
|
||||||
// This is the same code as: app/controllers/concerns/api/access_token_tracking_concern.rb
|
// This is the same code as: app/controllers/concerns/api/access_token_tracking_concern.rb
|
||||||
if (accessToken.last_used_at === null || accessToken.last_used_at < Date.now() - ACCESS_TOKEN_UPDATE_FREQUENCY) {
|
if (accessToken.last_used_at === null || accessToken.last_used_at < Date.now() - ACCESS_TOKEN_UPDATE_FREQUENCY) {
|
||||||
await pgPool.query('UPDATE "oauth_access_tokens" SET "last_used_at" = $2, "last_used_ip" = $3 WHERE "oauth_access_tokens"."id" = $1', [ accessToken.id, new Date(), req.ip ]);
|
let query, variables = [];
|
||||||
|
if (req.ip && net.isIP(req.ip)) {
|
||||||
|
query = 'UPDATE "oauth_access_tokens" SET "last_used_at" = $2, "last_used_ip" = $3 WHERE "oauth_access_tokens"."id" = $1';
|
||||||
|
variables = [ accessToken.id, new Date(), req.ip ];
|
||||||
|
} else {
|
||||||
|
query = 'UPDATE "oauth_access_tokens" SET "last_used_at" = $2 WHERE "oauth_access_tokens"."id" = $1';
|
||||||
|
variables = [ accessToken.id, new Date() ];
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await pgPool.query(query, variables);
|
||||||
|
} catch (err) {
|
||||||
|
req.log.error(err, 'Error updating Access Token usage tracking');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
req.accessTokenId = accessToken.id;
|
req.accessTokenId = accessToken.id;
|
||||||
|
|
Loading…
Reference in a new issue