• 0
Sign in to follow this  
Fernando Aguirre

Rango de ip de mercadolibre

Question

Hola buen dia.

Estaba leyendo las buenas practicas de la API de mercadopago, y al final incluyen el rango de IPs desde donde mandan las notificaciones. Trate de buscar esta misma informacion en los API DOCS de mercadolibre pero no la encontre.

Alguien sabe el rango de IPs desde las cuales mercadolibre manda las notificaciones? Esto para agregar mayor seguridad y evitar ataques de personas que no tienen nada que hacer. 

Estos son los rangos de ip que dan en mercadopago

209.225.49.0 - 209.225.49.255
216.33.197.0 - 216.33.197.255
216.33.196.0 - 216.33.196.255
63.128.82.0 - 63.128.82.255
63.128.83.0 - 63.128.83.255
63.128.94.0 - 63.128.94.255

He estado jugando con la api de MP y veo que comparten la informacion esencial, como tokens, app id y demas, podria ser posible que tambien se envien las notificaciones desde las mismas IPs?

Me puse a ver el whois de algunas IP,  como 10, y todas eran propiedad de mercadolibre, por lo que podria ser posible lo anterior.

Como digo, es por seguridad, yo podria estar si nada que hacer, tomar la prueba gratis de una app, y simplemente jugar con las urls un rato, porque supongo que un gran fallo de seguridad seria que la url donde reciban sus notificaciones sea "https://app.com/notificaciones.php" o "https://app.com/notificaciones/notificaciones.php" y si no hay algun bloqueo tipo de bloqueo, como con estas ips, podrian enviar informacion falsa, o hacer un ataque masivo de request hasta destrozar el servidor, algo asi por el estilo.

Saludos!

 

+ + + + + + + + + + + ACTUALIZACION 

Habia levantado un ticket de soporte, y me respondieron satisfactoriamente!

["{bloque : 209.225.49.0/24}",
"{bloque : 216.33.197.0/24}",
"{bloque : 216.33.196.0/24}",
"{bloque: 63.128.82.0/24}",
"{bloque : 63.128.83.0/24}",
"{bloque : 63.128.94.0/24}"]

216.33.196.4 y 216.33.196.25

Al parecer son las mismas IPs, solo que en ML utilizan un rango mas bajo que en MP, esperemos que con esta informacion podamos proteger aun mas nuestras apps.

Y ahora, como hacemos un filtro basico?

 $allowlist = array(
      '209.225.49',
      '216.33.197',
      '216.33.196',
	  '63.128.82.',
      '63.128.83.',
      '63.128.94.'
    );

    foreach ($allowlist as $key=>$ip){
      if(strncmp($ip, $_SERVER['REMOTE_ADDR'], 10) === 0){
        die('Ip out of range.');
      }
    };
    

Simplemente ponemos los rangos de IP en un array, y hacemos un string comparison, si el que ejecuta el script no esta dentro de ese rango, adiosito.

Saludos!

Edited by Fernando Aguirre

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this