Saltar al contenido

Asegurar php api para usar en la aplicación de Android

Ya no busques más por otras webs porque estás al espacio exacto, poseemos la respuesta que necesitas encontrar y sin liarte.

Solución:

Para proteger sus API, necesita un mecanismo para detectar que la solicitud a la API proviene de una fuente confiable. Muchos marcos vienen con esta función de forma predeterminada.

Sin embargo, puede usar JSON Web Tokens (jwt) con PHP para agregar autorización a sus solicitudes de API

Más información sobre la autenticación basada en tokens de esta página.

Mira esto tutorial sencillo sobre cómo proteger los puntos finales de la API de PHP con JWT.

Si necesita aún más seguridad, es posible que desee agregar el servicio de proveedor OAuth a su API. consulte esta publicación sobre cómo escribir el proveedor OAuth en PHP

El único método para proteger su API es hacer que su solicitud de Android sea única. Recopile datos más específicos de su aplicación.

1 – Obtener identificación única de Android –

String UniqueID=Secure.getString(getActivity().getContentResolver(),Secure.ANDROID_ID);

Y páselo a través de su api, por ejemplo.

http://192.168.100.9:8000/MobileApp/GET_DATA.php?yourvalue=something&id=UniqueID

En su php, niegue el acceso si no hay una ID única de Android (debe cambiar con un nombre de variable complejo). Por ejemplo:

if($_REQUEST['UniqueID']=="" || strlen($_REQUEST['UniqueID'])<9) //do something about abuse else //your code 

2 - Crea tu propia variable aleatoria en la aplicación de Android

Cree su propia variable para decidir asegurarse de que la solicitud provenga de su aplicación, por ejemplo:

Random r = new Random();
int i1 = r.nextInt(9999 - 1000) + 1000;

Y también pase este valor a través de su solicitud y valide cuando se trata de php.

if($_REQUEST['r']>=1000 && $_REQUEST['r']<=9999)//

Denegar la solicitud si no pasa o tiene un valor incorrecto.

3 - Asegúrate de que las solicitudes provengan de Android

Quiero recomendar el uso de la mejor biblioteca php gratuita http://mobiledetect.net/ Verifique si es de Android y escriba la función de denegación en abusos no válidos.

4 - Validar solicitud a través de User-Agent string en PHP

$agent = $_SERVER['HTTP_USER_AGENT'];
$agent=strtolower($agent);

if (strpos($agent, 'android') !== false) 
$os = 'Android';

Y negar si no desde android en php.

5 - Registrar a los atacantes

Debe rastrear si alguien está rompiendo uno de sus valores anteriores. Actualmente estoy usando ip-api.com para rastrear a los atacantes.

necesita escribir la función de denegación con mysql insert. de acuerdo con ip-api, obtendrá

1- IP de los atacantes
2- Geolocalización de los atacantes
3- ISP de los atacantes

Entonces puedes negarlos estáticamente.

Está a punto de ser seguro usar su API desde Android y casi se niegan las solicitudes de PC. Pero tres es una oportunidad de romper su aplicación con ingeniería inversa como dex2jar o ShowJava y obtener su estructura de datos simple. Como programador, las funciones y los códigos anteriores son muy fáciles para ellos y entrarán con entradas de datos falsas.

Así que no deberías escribir un programa con static valores, enlace tan importante "http://192.168.100.9:8000/MobileApp/GET_DATA.php" tan codificado como en su aplicación. Debe dividir los datos, encriptarlos de manera simple y obtener todas sus direcciones URL principales de forma dinámica como el método de API php/mysql seguro anterior.

Si cubrió como un sistema dinámico de 2 pasos, hay muy pocas posibilidades de romper su sistema.
Me queda algo importante por decir, si está utilizando para un grupo cerrado de usuarios, debe usar el sistema de solicitud->aprobar para cada usuario para el registro de la aplicación por primera vez usando su identificación única y denegar fácilmente el acceso de los demás.

Sección de Reseñas y Valoraciones

Si estás contento con lo expuesto, puedes dejar una división acerca de qué le añadirías a este enunciado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *