Spaces:
Sleeping
Sleeping
Upload server.js
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 385 |
-
if (
|
|
|
|
|
|
|
| 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'
|