Update announce.php

This commit is contained in:
Roman Kelesidis 2023-10-04 23:29:00 +07:00
parent 87cf935d35
commit b4237d3e2d

View File

@ -19,6 +19,10 @@ if (isset($_GET['event']) && $_GET['event'] === 'completed')
$announce_interval = $bb_cfg['announce_interval']; $announce_interval = $bb_cfg['announce_interval'];
$passkey_key = $bb_cfg['passkey_key']; $passkey_key = $bb_cfg['passkey_key'];
$max_left_val = 536870912000; // 500 GB
$max_up_down_val = 5497558138880; // 5 TB
$max_up_add_val = 85899345920; // 80 GB
$max_down_add_val = 85899345920; // 80 GB
// Recover info_hash // Recover info_hash
if (isset($_GET['?info_hash']) && !isset($_GET['info_hash'])) if (isset($_GET['?info_hash']) && !isset($_GET['info_hash']))
@ -33,7 +37,7 @@ if (strpos($_SERVER['REQUEST_URI'], 'scrape') !== false)
} }
if (!isset($_GET[$passkey_key]) || !is_string($_GET[$passkey_key]) || strlen($_GET[$passkey_key]) != BT_AUTH_KEY_LENGTH) if (!isset($_GET[$passkey_key]) || !is_string($_GET[$passkey_key]) || strlen($_GET[$passkey_key]) != BT_AUTH_KEY_LENGTH)
{ {
msg_die('Please LOG IN and RE-DOWNLOAD this torrent (passkey not found)'); msg_die('Please LOG IN and REDOWNLOAD this torrent (passkey not found)');
} }
// Input var names // Input var names
@ -70,37 +74,33 @@ $passkey = isset($$passkey_key) ? $$passkey_key : null;
// Verify request // Verify request
// Required params (info_hash, peer_id, port, uploaded, downloaded, left, passkey) // Required params (info_hash, peer_id, port, uploaded, downloaded, left, passkey)
if (!isset($info_hash)) if (!isset($info_hash) || strlen($info_hash) != 20)
{ {
msg_die('info_hash was not provided'); msg_die('Invalid info_hash');
}
if (strlen($info_hash) != 20)
{
msg_die('Invalid info_hash: ' . bin2hex($info_hash));
} }
if (!isset($peer_id) || strlen($peer_id) != 20) if (!isset($peer_id) || strlen($peer_id) != 20)
{ {
msg_die('Invalid peer_id: ' . bin2hex($peer_id)); msg_die('Invalid peer_id');
} }
if (!isset($port) || $port < 0 || $port > 0xFFFF) if (!isset($port) || $port < 0 || $port > 0xFFFF)
{ {
msg_die('Invalid port: ' . $port); msg_die('Invalid port');
} }
if (!isset($uploaded) || $uploaded < 0) if (!isset($uploaded) || $uploaded < 0 || $uploaded > $max_up_down_val || $uploaded == 1844674407370)
{ {
msg_die('Invalid uploaded value: ' . $uploaded); msg_die('Invalid uploaded value');
} }
if (!isset($downloaded) || $downloaded < 0) if (!isset($downloaded) || $downloaded < 0 || $downloaded > $max_up_down_val || $downloaded == 1844674407370)
{ {
msg_die('Invalid downloaded value: ' . $downloaded); msg_die('Invalid downloaded value');
} }
if (!isset($left) || $left < 0) if (!isset($left) || $left < 0 || $left > $max_left_val)
{ {
msg_die('Invalid left value: ' . $left); msg_die('Invalid left value');
} }
if (!verify_id($passkey, BT_AUTH_KEY_LENGTH)) if (!verify_id($passkey, BT_AUTH_KEY_LENGTH))
{ {
msg_die('Invalid passkey: ' . $passkey); msg_die('Invalid passkey');
} }
// IP // IP
@ -243,7 +243,7 @@ else
} }
if (empty($row['user_id'])) if (empty($row['user_id']))
{ {
msg_die('Please LOG IN and RE-DOWNLOAD this torrent (user not found)'); msg_die('Please LOG IN and REDOWNLOAD this torrent (user not found)');
} }
$user_id = $row['user_id']; $user_id = $row['user_id'];