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?
5
A
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
- 1. ¿Hay alguna forma de garantizar una salida jerárquica desde NetworkX?
- 2. ¿Hay alguna forma de garantizar que una biblioteca de clases use su propia configuración de aplicación?
- 3. En Java, ¿hay alguna forma de garantizar que se invoquen varios métodos en un bloque finally?
- 4. ¿Hay alguna forma de marcar un método para garantizar que T no sea nulo?
- 5. ¿Hay alguna forma de garantizar que las funciones miembro sean virtuales en D?
- 6. ¿Hay alguna forma de garantizar que una aplicación ASP.NET esté (solo) ejecutándose en el protocolo HTTPS?
- 7. php ¿Cómo se asegura de que los datos de $ _POST provengan de su formulario y no de una influencia externa?
- 8. ¿Hay alguna forma de hacer que los datos json sean leíbles por una araña de Google?
- 9. ¿Hay alguna forma de controlar los cambios en un objeto?
- 10. ¿Hay alguna manera de almacenar de forma segura los datos de usuario en un dispositivo Android?
- 11. ¿Hay alguna forma de multirreproducir un SqlDataReader?
- 12. ¿Hay alguna forma de establecer un módulo PHP diferente por cada host virtual?
- 13. ¿Hay alguna manera de deshabilitar ReSharper para un archivo específico?
- 14. ¿Hay alguna forma de 'resaltar' el código?
- 15. ¿Hay alguna forma de agregar un número par de dígitos?
- 16. ¿Hay alguna forma de acceder dinámicamente a un superglobal?
- 17. estado de git: ¿hay alguna manera de mostrar los cambios solo en un directorio específico?
- 18. ¿Hay alguna forma de hacer un PUT con WebClient?
- 19. La forma más elegante de garantizar la visualización de los datos del modelo para _Layout.cshtml
- 20. ¿Hay alguna forma de "hacer" hacerse eco de los comandos
- 21. ¿Hay alguna forma de que jadclipse funcione con Eclipse 3.4?
- 22. ¿Hay alguna forma de crear un script que corrija automáticamente los documentos escaneados?
- 23. ¿Hay alguna forma de evitar que Javascript falle silenciosamente?
- 24. ¿Hay alguna forma de cargar json desde un subdominio?
- 25. ¿Hay alguna forma de extraer/actualizar todos los subrepos?
- 26. Campo de UUID agregado después de los datos que ya están en la base de datos. ¿Hay alguna forma de llenar el campo UUID para los datos existentes?
- 27. ¿Hay alguna forma de hacer que un bloque sea opcional en la plantilla de Django?
- 28. ¿Hay alguna forma de que PHP detecte una imagen dañada?
- 29. ¿Hay alguna forma de suprimir el VS que intenta conectarse?
- 30. ¿Hay alguna forma de que YQL devuelva HTML?
¿Es la fuente de confianza en la misma red por casualidad? –
no, www lamentablemente – maxum
¿por qué no marcó $ _SERVER ['HTTP_REFERER']? –