recycleactor commited on
Commit
0d73941
·
verified ·
1 Parent(s): 2288dcc

Upload server.js

Browse files
Files changed (1) hide show
  1. server.js +11 -3
server.js CHANGED
@@ -356,7 +356,13 @@ app.get('/p', async (req, res) => {
356
  // картинки, m3u8/mp4-потоки и т.д. Без Babel и без лимита в MAX_BYTES, со стримингом
357
  // и поддержкой Range (нужно для перемотки видео).
358
  const RAW_METHODS = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS']
359
- const REQ_HEADERS_PASS = ['range', 'if-range', 'accept', 'accept-language', 'content-type', 'referer', 'origin']
 
 
 
 
 
 
360
  const RES_HEADERS_PASS = [
361
  'content-type', 'content-length', 'content-range', 'accept-ranges',
362
  'cache-control', 'expires', 'last-modified', 'etag'
@@ -381,8 +387,10 @@ app.all('/r', async (req, res) => {
381
  req.on('close', () => controller.abort())
382
 
383
  const headers = {}
384
- for (const h of REQ_HEADERS_PASS) {
385
- if (req.headers[h]) headers[h] = req.headers[h]
 
 
386
  }
387
  headers['user-agent'] = req.headers['user-agent']
388
  ? req.headers['user-agent'] + ' Lampa'
 
356
  // картинки, m3u8/mp4-потоки и т.д. Без Babel и без лимита в MAX_BYTES, со стримингом
357
  // и поддержкой Range (нужно для перемотки видео).
358
  const RAW_METHODS = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS']
359
+ // Заголовки, которые НЕ пробрасываем на апстрим специфичные для соединения
360
+ // клиент<->наш сервер, пересылать их дальше некорректно/бессмысленно.
361
+ const REQ_HEADERS_SKIP = new Set([
362
+ 'host', 'connection', 'content-length', 'accept-encoding',
363
+ 'x-forwarded-for', 'x-forwarded-proto', 'x-forwarded-host',
364
+ 'cf-connecting-ip', 'cf-ray', 'cf-visitor', 'x-real-ip'
365
+ ])
366
  const RES_HEADERS_PASS = [
367
  'content-type', 'content-length', 'content-range', 'accept-ranges',
368
  'cache-control', 'expires', 'last-modified', 'etag'
 
387
  req.on('close', () => controller.abort())
388
 
389
  const headers = {}
390
+ for (const h in req.headers) {
391
+ if (REQ_HEADERS_SKIP.has(h)) continue
392
+ if (h.indexOf('sec-') === 0) continue // sec-fetch-*, sec-ch-ua* — метаданные браузера, апстриму не нужны и могут смутить его антибот-защиту
393
+ headers[h] = req.headers[h]
394
  }
395
  headers['user-agent'] = req.headers['user-agent']
396
  ? req.headers['user-agent'] + ' Lampa'