Entonces, ¿cómo puedo verificar usando codeigniter si el cliente es curl, y luego devolver algo diferente para él?El agente de usuario CURL
Respuesta
Puede falsificar user-agent cuando se usa cURL, por lo que no tiene sentido según el usuario-agente enviado cuando SABE que es una solicitud de CURSO.
Por ejemplo: recientemente escribí una aplicación que obtiene el pagerank de una url de google. Ahora, a Google no le gusta esto, por lo que solo permite que un determinado agente de usuario acceda a sus servidores de búsqueda de páginas. ¿Solución? La falsificación del usuario-agente usando cURL y Google no será más inteligente.
Moraleja de la historia: los agentes de usuario de cURL NO SON confiables.
Si todavía quiere hacer esto, entonces usted debería ser capaz de obtener el agente de usuario pasada al igual que lo normal
$userAgent=$_SERVER['HTTP_USER_AGENT'];
EDITAR Una prueba rápida probó esto:
dumpx.php:
<?php
$url="http://localhost/dump.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if($_GET['u']==y) {
curl_setopt($ch, CURLOPT_USERAGENT, "booyah!");
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 0);
$exec=curl_exec ($ch);
?>
dump.php:
<?php
var_dump($_SERVER);
?>
Caso 1: http://localhost/dumpx.php?u=y
'HTTP_USER_AGENT' => string 'booyah!' (length=7)
Caso 2: http://localhost/dumpx.php?u=n
n $ _SERVER [ 'HTTP_USER_AGENT']
Esto demuestra que no hay ningún agente de usuario predeterminado para rizo: se simplemente no lo pasará en el encabezado de solicitud
Estaba obteniendo el "código": "invalid_header", "message": "invalid request header", "details": "El encabezado 'User-Agent' está mal formado, falta o tiene un valor no válido." Al enviar un Solicitud de CURL usando PHP y su solución funcionó a las mil maravillas. Solo necesita especificar 'User-agent:'. $ _ SERVER ['HTTP_USER_AGENT']. ¡Gracias! –
Puede spoof o establecer un encabezado de agente de usuario personalizado cuando se utiliza cURL, por lo que no sería confiable.
De lo contrario, usted puede hacer esto:
if(strtolower($this->input->server('HTTP_USER_AGENT', true)) == 'curl')
{
// Is using cURL
}
Esto puede ocurrir solamente si la solicitud cURL contenía curl
en la cabecera del agente de usuario.
Por lo que sé, no hay un agente de usuario predeterminado configurado al hacer una solicitud de curl.
'Hasta donde sé, no hay un valor predeterminado' ... - cURL envía un agente de usuario predeterminado como 'User-Agent: curl/7.47.0' si no especifica uno manualmente. – samiles
cURL significa - Biblioteca de URL de cliente y el objetivo de todo esto es poder realizar solicitudes que sean idénticas a las que haría un cliente.
Lo único que puede hacer es detectar la información que forma parte de la solicitud, como la dirección IP, los encabezados de solicitud HTTP, cookies/cookie de identificación de sesión, URL (ruta/página) y cualquier información de publicación/obtención . Si la persona que usa curl para realizar la solicitud lo hace desde una dirección IP esperada y está suministrando los valores esperados de encabezado/cookie/token/URL/post/get, entonces no podrá distinguir una solicitud de curl de un navegador que esté realizando la solicitud.
Si desea detectar bots no puede confiar en el agente de usuario.Las mejores prácticas son:
- Compruebe que su visitante ejecute js (no todos los usuarios humanos también lo hacen).
- Compruebe que su visitante cargue archivos adicionales relacionados con la página web (css, imágenes, etc.)
- Compruebe los tiempos de espera de los visitantes. Generalmente, los humanos no cargan 10 páginas por segundo.
- 1. Agente de usuario WebView
- 2. Agente de usuario de iPhone
- 3. ¿Agente de usuario móvil Android?
- 4. agente de usuario de expresiones regulares móvil
- 5. Chrome conseguir "agente de usuario de estilo"
- 6. MDDR en cadena de agente de usuario
- 7. JQuery Ajax Solicitud: cambio de usuario-agente
- 8. Agente de usuario genérico para Android (UA)
- 9. Agente de usuario extraño con Google Chrome
- 10. ¿Qué es el agente de usuario de Samsung s3?
- 11. ¿Qué es el agente de usuario de Blackberry PlayBook?
- 12. ¿Qué es el agente de usuario de iPad?
- 13. Agente de usuario de Chrome para iOS en el iPad
- 14. ¿Cómo obtengo el agente de usuario con Flask?
- 15. ¿Cómo configuro el agente de usuario para Ruby's RestClient?
- 16. ¿Cómo obtener el agente de usuario en iOS?
- 17. ¿Qué agente de usuario informa el control WebBrowser?
- 18. Cómo obtener el agente de usuario en PHP
- 19. Cambiar el agente de usuario del control WebBrowser
- 20. Cómo averiguar sobre el agente de usuario en GWT
- 21. .htaccess Permitir todo desde el agente de usuario específico
- 22. Qt QWebView clase personalizada usuario-agente
- 23. Curl - Signo de exclamación en el usuario/contraseña
- 24. Configuración del agente de usuario de un java URLConnection
- 25. Establecer encabezado de solicitud y agente de usuario en Geb
- 26. ¿Qué es la hoja de estilo del agente de usuario
- 27. Setting "una cadena de agente de usuario informativa" en getUrl
- 28. Imitando al agente de usuario de iPhone en Chrome?
- 29. cómo analizar la cadena de agente de usuario? python
- 30. Nginx proxy o rewrite en función de agente de usuario
Puede * spoof * o establecer un encabezado de agente de usuario personalizado al usar cURL, por lo que no sería confiable. – MacMac
Pregunto cuál es el agente de usuario predeterminado de cURL o, para el caso, php-cURL – macintosh264