Si utilizo la función fopen()
de PHP para recuperar datos de un sitio web HTTPS, es lo que se podría llamar una conexión segura HTTPS. Es decir, ¿brinda protección contra los ataques de hombre en el medio y de espionaje?¿Fopen() de PHP protege contra ataques típicos al acceder a recursos https?
Respuesta
No por defecto, no.
Proporcionará siempre alguna forma de protección contra ataques simples de escuchas ya que los datos siempre estarán encriptados (siempre que el servidor SSL al que se conecte permita al menos utilizar un cifrado cifrado; sí, cifrados nulos están permitidos en las conexiones HTTPS: roll-eyes :) Sin embargo, de forma predeterminada, no protegerá contra man-in-the-middle, ya que no valida los certificados del servidor, por lo tanto, no puede confiar en que se haya conectado al servidor previsto.
La validación del certificado se puede activar. Para hacerlo, deberá proporcionar un paquete de certificados raíz y usar el cuarto argumento al fopen
que le permite especificar un contexto de flujo. El contexto de la secuencia le permite modificar el comportamiento de la secuencia. El ejemplo siguiente cambia provoca que los certificados se validen contra los certificados raíz en el archivo de paquete especificado.
$context = stream_context_create(array(
'ssl' => array(
'cafile' => 'ca_bundle.crt',
'verify_peer' => true
)
));
$file = fopen($url, 'r', false, $context);
- 1. ¿HTTPS protege contra ataques CSRF?
- 2. Protéjase contra ataques de Dos
- 3. ¿Cómo se protege contra XSRF en Grails?
- 4. Reproducción de ataques para solicitudes HTTPS
- 5. HTTPS en JSF 2, para los recursos protegidos y acceder
- 6. PHP: fopen() Permiso denegado
- 7. PHP fopen() Error: error al abrir la secuencia: Permiso denegado
- 8. "CURLE_OUT_OF_MEMORY" error al publicar a través de https
- 9. ¿Cómo protege pushState contra posibles falsificaciones de contenido?
- 10. ¿mysql_real_escape_string() TOTALMENTE protege contra la inyección de SQL?
- 11. Comportamiento de feof de PHP contra C
- 12. SplFileObject vs fopen en PHP
- 13. Dar permiso de PHP para acceder al puerto COM
- 14. ¿Spring JDBC brinda protección contra ataques de inyección SQL?
- 15. Acceder a los recursos de JAR
- 16. ¿Cómo acceder a los recursos de prueba?
- 17. PHP: fopen para crear carpetas
- 18. Qt cómo acceder a los recursos
- 19. ¿Cómo debo protegerme contra los ataques de enlaces duros?
- 20. SQL Server: Desinfección @param contra ataques de inyección
- 21. ¿Las cookies seguras de https previenen ataques XSS?
- 22. ¿ExecuteCommand de LINQ proporciona protección contra ataques de inyección SQL?
- 23. Redireccionando de HTTP a HTTPS con PHP
- 24. ¿Cómo acceder al archivo de recursos en C#?
- 25. ¿La suscripción a la aplicación protege contra la manipulación del archivo?
- 26. Cadenas codificadas contra el archivo de recursos
- 27. PHP: fopen: Ningún archivo o directorio
- 28. ¿Cómo protege Windows la transición al modo kernel?
- 29. Recursos sobre programación segura contra fallas y tolerancia a fallos
- 30. PHP fopen() no crea un archivo
Una cosa adicional que puede querer hacer es restringir el conjunto de cifrado permitido para permitir solo formas de encriptación fuertes. El cifrado disponible más fuerte (permitido tanto por el cliente como por el servidor) se debe usar por defecto; Sin embargo, si es realmente quisquilloso, es posible que desee negar las conexiones a servidores que no admitan un nivel de cifrado lo suficientemente alto. Si alguien sabe cómo lograr esto en PHP, publique. – Cheekysoft