Tengo un script donde los procesadores de pagos vienen con confirmaciones de pago. Para hacer que la página es segura, ya que se puede acceder a la información del pedido y la otra materia relacionada con el usuario, que tenía que limitar los acceso por IP (/ 24) como sigue:¿Conoces una secuencia de comandos php simple para arrojar 403, después de la verificación ip?
$ipAllowed = array(
'192.192.192',
'172.172.172'
);
$ipAllowed = str_replace(".", "\.", implode("|", $ipAllowed));
if(!preg_match("/^($ipAllowed)\.[0-9]{1,3}$/", $_SERVER['REMOTE_ADDR'])){
header('HTTP/1.0 403 Forbidden');
die('You are not allowed to access this file.');
}
* la década de IP son sólo como ejemplo
Antes solía:
if(!in_array(@$_SERVER['REMOTE_ADDR'], array('ips here'))); //only works with full ip
el in_array era mucho más ordenado y luego el que yo uso ahora, pero necesito algo que funciona con/24 ips, o incluso con los dos!
¿Sabes algo que funciona mejor/más rápido, es confiable y mucho más limpio?
@ rap-2-H como usted dijo esta es la versión más limpio que funciona con plena ip,/24 o incluso/16
$ipAllowed = array('192.168.1.153' '172.172.172');
$allowed = false;
foreach($ipAllowed as $ip):
if(strpos($_SERVER['REMOTE_ADDR'], $ip) === 0) $allowed = true;
endforeach;
if (!$allowed) {
header('HTTP/1.0 403 Forbidden');
die('You are not allowed to access this file.');
}
Espero que tenga otras medidas de seguridad también. IP es bueno como defensa en profundidad, pero evitaría confiar en él como única medida. – CodesInChaos
¡sí! después, todo el método comienza a calcular los parámetros POST y actúa en consecuencia (también se envía un hash de todos los parámetros con una clave de cifrado). Podría confiar solo en eso, pero quiero estar a salvo. – amstegraf
"también se envía un hash de todos los parámetros con una clave de cifrado" ¿Cómo funciona el hash con clave? ¿Es algo bueno, como HMAC, o algo roto como H (k || m)? – CodesInChaos