better IP validation
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Http\Controllers\EnvironmentController;
|
||||
use App\Http\Controllers\OrganisationController;
|
||||
use App\Http\Controllers\ServerController;
|
||||
use App\Models\Server;
|
||||
use App\Support\Ip;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Inertia\Inertia;
|
||||
@@ -67,9 +68,16 @@ Route::post('/provision-callback', function (Request $request) {
|
||||
|
||||
$server = Server::find($validated['server_id']);
|
||||
|
||||
|
||||
// Check against ipv4 and ipv6
|
||||
$isValidIp = false;
|
||||
if ($server->ipv4 && Ip::inNetwork($request->ip(), $server->ipv4)) {
|
||||
$isValidIp = true;
|
||||
}
|
||||
if ($server->ipv6 && Ip::inNetwork($request->ip(), $server->ipv6)) {
|
||||
$isValidIp = true;
|
||||
}
|
||||
|
||||
if ($request->ip() !== $server->ipv4 && inet_pton($request->ip()) !== inet_pton($server->ipv6)) {
|
||||
if (! $isValidIp) {
|
||||
logger('someone tried to callback from an invalid IP');
|
||||
logger(' server ip: ' . $server->ipv4);
|
||||
logger(' server ipv6: ' . $server->ipv6);
|
||||
|
||||
Reference in New Issue
Block a user