2011-07-09 8 views
5

Tengo un script PHP donde es muy importante que los datos POST provengan de una fuente conocida. A juzgar por los "títulos similares" no hay una forma real de hacerlo ya que los encabezados pueden ser falsificados. ¿Puede SERVER_ADDR ser falsificado también? ¿Podría usarse esto como algún tipo de verificación desde donde se publican los datos?¿Hay alguna forma de garantizar que los datos POST provengan de un host específico?

+0

¿Es la fuente de confianza en la misma red por casualidad? –

+0

no, www lamentablemente – maxum

+0

¿por qué no marcó $ _SERVER ['HTTP_REFERER']? –

Respuesta

3

Sin tener en cuenta PHP, confiar en la dirección IP desde la que parece llegar la solicitud es una forma de seguridad bastante débil. Debe considerar usar HTTPS con certificados de clientes individuales entregados a cada fuente confiable.

SSL puede parecer desalentador al principio, pero lo que necesita aquí no es complicado en absoluto, y obtendrá una valiosa habilidad para aprenderlo.

0
if($_SERVER['REMOTE_ADDR'] != '127.0.0.10') { 
    die('Not allowed!); 
} 
// rest of script... 

$ _SERVER [ 'REMOTE_ADDR'] no es de las cabeceras suministrados por el cliente (se suministra por Apache y sube desde la pila de red) y no se puede suplantar.

Cuestiones relacionadas