mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-03 12:36:02 +01:00
fix: #13136, do not log 404s for AP requests
This commit is contained in:
@@ -64,6 +64,11 @@ Helpers.isUri = (value) => {
|
||||
});
|
||||
};
|
||||
|
||||
Helpers.assertAccept = accept => (accept && accept.split(',').some((value) => {
|
||||
const parts = value.split(';').map(v => v.trim());
|
||||
return activitypub._constants.acceptableTypes.includes(value || parts[0]);
|
||||
}));
|
||||
|
||||
Helpers.isWebfinger = (value) => {
|
||||
// N.B. returns normalized handle, so truthy check!
|
||||
if (webfingerRegex.test(value) && !Helpers.isUri(value)) {
|
||||
|
||||
@@ -6,6 +6,7 @@ const validator = require('validator');
|
||||
|
||||
const meta = require('../meta');
|
||||
const plugins = require('../plugins');
|
||||
const activitypub = require('../activitypub');
|
||||
const middleware = require('../middleware');
|
||||
const helpers = require('../middleware/helpers');
|
||||
const { secureRandom } = require('../utils');
|
||||
@@ -24,6 +25,12 @@ exports.handle404 = helpers.try(async (req, res) => {
|
||||
|
||||
if (isClientScript.test(req.url)) {
|
||||
res.type('text/javascript').status(404).send('Not Found');
|
||||
} else if (
|
||||
activitypub.helpers.assertAccept(req.headers.accept) ||
|
||||
(req.headers['Content-Type'] && activitypub._constants.acceptableTypes.includes(req.headers['Content-Type']))
|
||||
) {
|
||||
// todo: separate logging of AP 404s
|
||||
res.sendStatus(404);
|
||||
} else if (
|
||||
!res.locals.isAPI && (
|
||||
req.path.startsWith(`${relativePath}/assets/uploads`) ||
|
||||
|
||||
@@ -16,10 +16,8 @@ middleware.assertS2S = async function (req, res, next) {
|
||||
return next('route');
|
||||
}
|
||||
|
||||
const pass = (accept && accept.split(',').some((value) => {
|
||||
const parts = value.split(';').map(v => v.trim());
|
||||
return activitypub._constants.acceptableTypes.includes(value || parts[0]);
|
||||
})) || (contentType && activitypub._constants.acceptableTypes.includes(contentType));
|
||||
const pass = activitypub.helpers.assertAccepts(accept) ||
|
||||
(contentType && activitypub._constants.acceptableTypes.includes(contentType));
|
||||
|
||||
if (!pass) {
|
||||
return next('route');
|
||||
|
||||
Reference in New Issue
Block a user