Sto cercando di capire come aggiungere un ulteriore livello di sicurezza alle mie chiamate cURL WebApp che vanno al mio motore API.
Ho una WebApp che invia dati a un motore API che ho creato.
La mia API avrà accesso al filesystem e quindi deve essere abbastanza sicura in modo che non ci sia modo che qualcuno possa eseguire uno script sul server.
L'idea che dovevo proteggere ulteriormente si ha un salt
su WebApp e lo stesso sul motore API, la WebApp invierà il cURL con un timestamp con hash e il timestamp reale, più qualsiasi altra richiesta, esempio:
<?php
$hash = "1h2k3jklh";
$tstamp = time();
$hashed_tmstamp = md5($tstamp . $hash);
$data_to_send = [
'time' => $tstamp,
'auth' => $hashed_tmstamp,
'foo' => "bar"
];
Sul lato API controllerò se auth
è uguale al timestamp inviato hash con l'hash API (che è lo stesso di WebApp).
In questo modo se auth
viene copiato e inviato con una nuova richiesta avrà sempre esito negativo come aggiornamenti data / ora. Ho fatto un piccolo esempio grafico per capire meglio.
C'èunpunto,se"l'uomo nel mezzo" può copiare il auth
può anche copiare time
e può inviare richieste sempre con lo stesso tempo e auth.
Quindi mi sto chiedendo come risolvere questa parte perché sul lato API non ho un DB da controllare con "hash già usato".
Sono in dubbio sto probabilmente cercando di reinventare la ruota e di sicuro questo tipo di cose è già stato controllato / gestito.
L'unico punto è che voglio il "metodo standard", ma sto cercando di aggiungere ulteriore sicurezza in modo che un possibile hacker non sappia cosa c'è dall'altra parte.
Qualche consiglio? Inoltre, qualche idea migliore?