Estoy tratando de averiguar cómo agregar una capa de seguridad adicional a mis llamadas de CURS de aplicación web que van a mi motor de API.
Tengo una aplicación web que envía datos a un motor de API que hice.
Mi API tendrá acceso al sistema de archivos y, por lo tanto, debe ser bastante segura para que no haya forma de que alguien pueda ejecutar un script en el servidor.
La idea que tenía para asegurarla aún más es tener un salt
en la aplicación web y la misma en el motor de la API, la aplicación web enviará la cURL con una marca de tiempo con hash y la marca de tiempo real, más cualquier otra solicitud, ejemplo:
<?php
$hash = "1h2k3jklh";
$tstamp = time();
$hashed_tmstamp = md5($tstamp . $hash);
$data_to_send = [
'time' => $tstamp,
'auth' => $hashed_tmstamp,
'foo' => "bar"
];
En el lado de la API, comprobaré si auth
es igual a la marca de tiempo enviada con el hash de la API (que es el mismo que el de la aplicación web).
De esta manera, si auth
se copia y el envío con una nueva solicitud siempre fallará como actualizaciones de fecha y hora. Hice un pequeño ejemplo gráfico para entender mejor.
Hayunpunto,si"el hombre del medio" puede copiar el auth
también puede copiar el time
y puede enviar solicitudes siempre con la misma hora y autenticación.
Así que me pregunto cómo resolver esta parte ya que en el lado de la API no tengo una base de datos para verificar contra "hash ya usado".
Estoy en duda Probablemente estoy tratando de reinventar la rueda y seguro que este tipo de cosas ya han sido revisadas / manejadas.
El único punto es que quiero la "forma estándar", pero estoy tratando de agregar seguridad adicional para que un posible pirata informático no sepa lo que hay al otro lado.
¿Algún consejo? Además, ¿alguna idea mejor?