Primero, no tienes forma de evitar que las personas que usan Curl para acceder a la API. En la perspectiva del servidor, su aplicación y alguien que usa curl o telnet es exactamente igual.
Debes emplear algunos controles y protecciones en la API que harán más difícil que las personas simplemente activen el enrollamiento y el desorden con tu base de datos. Mientras aprendes, no te daré enlaces, sino las cosas que debes investigar. Algunas opciones vienen a la mente:
-
Codificación segura
En primer lugar, aprenda cómo proteger el código. PHP es muy fácil de aprender, y al mismo tiempo es muy fácil cometer errores mortales. Aprender a proteger el código es lo primero que debe aprender antes de hacer algo. Escriba el código de seguridad desde el principio, no "haga que funcione" primero e intente protegerlo más tarde. Asegúrate desde el principio.
-
HTTPS
Debes emplear HTTPS. Le proporciona autenticación, confidencialidad y protección del servidor contra cambios accidentales o intencionales en el tráfico. Combínelo con la fijación de claves públicas y establecerá una barrera alta.
-
Autenticación de usuario
Si tiene algo privado, debe autenticar a los usuarios. Las contraseñas saladas, las sesiones seguras y las cookies seguras vienen a la mente. Incluso un captcha. También utilice el límite de velocidad en el inicio de sesión, por lo que será más difícil para alguien que fuerza bruscamente el inicio de sesión.
-
Validación de entrada y desinfección
Esto es muy importante. No importa qué tan seguros sean los controles alrededor de la API, si alguien puede realizar una inyección de SQL, está muerto. Todos tus usuarios están muertos, todos tus datos están muertos. Si alguien puede explotar un archivo remoto incluido, estás incluso más muerto que antes. Por lo tanto, nunca confíe en nada que reciba del cliente, incluso si el cliente está autenticado.
Estudie las OWASP guías y tutoriales, especialmente las 10 principales vulnerabilidades. Trate de no exponer su aplicación a esos riesgos.