mirror of
https://github.com/HDInnovations/UNIT3D-Community-Edition.git
synced 2026-04-23 11:39:19 -05:00
update: check for invalid requests
This commit is contained in:
@@ -35,6 +35,7 @@ class TrackerException extends \Exception
|
||||
126 => 'Client :ua is not acceptable! Please check our Whitelist.',
|
||||
127 => 'Client :ua banned due to: :comment .',
|
||||
128 => 'Client :ua is not acceptable! Please check our Blacklist.',
|
||||
129 => 'Invalid request !',
|
||||
|
||||
// Error message about Requests ( Part.2 request params )
|
||||
130 => 'key: :attribute is Missing !',
|
||||
|
||||
@@ -69,6 +69,15 @@ class AnnounceController extends Controller
|
||||
6699,
|
||||
];
|
||||
|
||||
private const HEADERS = [
|
||||
'Content-Type' => 'text/plain; charset=utf-8',
|
||||
'Cache-Control' => 'private, no-cache, no-store, must-revalidate, max-age=0',
|
||||
'Pragma' => 'no-cache',
|
||||
'Expires' => 0,
|
||||
'Connection' => 'close'
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* Announce Code.
|
||||
*
|
||||
@@ -111,7 +120,7 @@ class AnnounceController extends Controller
|
||||
$this->checkDownloadSlots($queries, $user);
|
||||
}
|
||||
|
||||
// Generate A Response For The Torrent Clent.
|
||||
// Generate A Response For The Torrent Client.
|
||||
$repDict = $this->generateSuccessAnnounceResponse($queries, $torrent, $user);
|
||||
|
||||
// Process Annnounce Job.
|
||||
@@ -131,6 +140,9 @@ class AnnounceController extends Controller
|
||||
*/
|
||||
protected function checkClient(Request $request): void
|
||||
{
|
||||
// Query count check
|
||||
\throw_if($request->query->count() < 6, new TrackerException(129));
|
||||
|
||||
// Miss Header User-Agent is not allowed.
|
||||
\throw_if(! $request->header('User-Agent'), new TrackerException(120));
|
||||
|
||||
@@ -526,9 +538,6 @@ class AnnounceController extends Controller
|
||||
*/
|
||||
protected function sendFinalAnnounceResponse($repDict): Response
|
||||
{
|
||||
return \response(Bencode::bencode($repDict))
|
||||
->withHeaders(['Content-Type' => 'text/plain; charset=utf-8'])
|
||||
->withHeaders(['Connection' => 'close'])
|
||||
->withHeaders(['Pragma' => 'no-cache']);
|
||||
return response(Bencode::bencode($repDict), headers: self::HEADERS);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user