martes, 18 de diciembre de 2012

Práctica10. Recuperación de volcados de datos

Aplicando todas las técnicas de consulta estudiadas, se propone la recuperación de los volcados de datos de diversas temáticas en formatos CSV y SQL. Se reseñará la cadena de consulta utilizada en cada caso, la dirección URL del archivo de volcado de datos y una muestra textual del archivo en la que aparezca reflejada la temática adecuada al tema propuesto. 

Descargar práctica10

lunes, 17 de diciembre de 2012

Extensión de consultas avanzadas y recuperación de volcados de datos

Extensión de consultas avanzadas

Filtrar extensiones y archivos en un sitio web
En muchos casos, la exigencia en las búsquedas de datos y documentos plantean el empleo de diversos operadores que identifiquen cuáles son los formatos válidos y desde qué sitio deben ser recuperados. Por ejemplo la consulta -ext:html -ext:htm -ext:shtml -ext:asp -ext:php site:csic.es permite obtener todos los subdominios de la página web del Consejo Superior de Investigaciones Científicas CSIC. Ello es debido a que se indica claramente qué archivos no son deseados entre los resultados. En tal caso se emplea el signo menos ( - ) precedido del operador de extensiones ( ext: ) y la extensión correspondiente. De esta forma entre los resultados no estarán presentes ninguna página html, asp o php que configuran todas las páginas web del sitio del CSIC. Por el contrario, el resultado obtenido serán todos los subdominios que contenga "csic.es". Para obtener un determinado tipo de documento dentro del dominio y subdominios del CSIC, tan sólo sería necesario modificar la consulta dada por la siguiente ext:pdf -ext:html -ext:htm -ext:shtml -ext:asp -ext:php site:csic.es en la que se indica la presencia de los archivos de extensión ( pdf ), que a su vez es equivalente a la expresión +ext:pdf -ext:html -ext:htm -ext:shtml -ext:asp -ext:php site:csic.es ya que el signo más ( + ) se emplea para indicar el cumplimiento obligatorio de la condición, filtro u operador que se está utilizando. Como se podrá observar existen múltiples formas de aludir a un mismo objetivo, como por ejemplo el operador ( filetype: ) y ( ext: ) cuya finalidad es la misma.

Recuperar copias de seguridad y archivos temporales
En muchas ocasiones, puede ser necesario realizar consultas sobre archivos, documentos, bases de datos o páginas web publicadas en el pasado o cuya copia de seguridad alberga información de interés. En esos casos es posible realizar consultas para recuperar tales copias de seguridad y archivos temporales de forma sencilla mediante el operador ( inurl: ) utilizando las palabras claves y extensiones adecuadas, utilizadas por los principales archivos de seguridad y almacenamiento. Por ejemplo inurl:temp, inurl:tmp, inurl:backup, inurl:bak. Estos casos pueden reproducirse en combinación con las consultas de directorios de servidores, como por ejemplo intitle:index.of "parent directory" inurl:backup site:mit.edu que permitiría observar los directorios de backup de los dominios, subdominios y páginas del MIT. De esta forma y mejorando la combinación de los operadores se pueden obtener los archivos backup en formato sql de un sitio web completo. Por ejemplo al realizar la consulta ext:sql inurl:backup se obtiene el enlace http://www.dpm-cultura.org/static/files.bk/backup.sql que contiene la copia de seguridad del sitio web de la Delegación de Cultura de la Diputación de Málaga, que pudiera contener información de interés para el trabajo documental. 

Combinación de extensiones y operadores
En muchas ocasiones, las consultas requieren diversas alternativas entre múltiples extensiones o cadenas de texto. En estos casos, la combinación de extensiones y operadores se realiza a modo de expresión regular REGEXP, tal como se muestra en el siguiente ejemplo ext:(doc | pdf | xls | txt | ps | rtf | odt | sxw | psw | ppt | pps | xml) (intext:information retrieval | intext:"retrieval models") inurl:book. Es posible determinar distintas alternativas por medio de valores separados por barras verticales ( | ) contenidos entre paréntesis. De esta forma se recuperan todos los libros que versan sobre recuperación de información en todos los formatos posibles y con diversos textos entre sus contenidos.


Recuperación de volcados de datos

Los volcados de datos constituyen una fuente de información muy importante para obtener catálogos, registros, tablas, bancos de datos completos sobre un tema o área de conocimiento determinada. Las consultas más eficientes en este sentido son las de tipo SQL (Structured Query Language) y CSV (Comma Separated Values). La información en gran medida se exporta en tales formatos y conviene conocer algunas cadenas de texto claves para su recuperación automática.

Volcados de datos SQL
En el caso de los volcados de datos en formato SQL, existe un método de migración de datos denominado "dumping data". En tales casos, los programas gestores de bases de datos MySQL, generan archivos automáticos con los contenidos de las tablas, estructuras y registros de la base de datos objetivo. Estos archivos pueden utilizarse para generar backups, copias de seguridad o servir de plataforma para la importación de los registros en terceros sistemas de información. En tales casos, ese proceso de automatización permite en un alto porcentaje, poder recuperar el texto predeterminado "MySQL dump", "Dumping data" y "phpMyAdmin MySQL-Dump" con alto poder discriminatorio con respecto al resto de archivos. De esta forma, las consultas quedarían como ext:sql "MySQL dump"ext:sql "Dumping data"ext:sql "phpMyAdmin MySQL-Dump". No obstante pueden obtenerse resultados muy similares, utilizando la sentencia ext:sql "INSERT INTO", ya que la instrucción "Insert Into" se refiere al proceso de inserción de registros que habitualmente es utilizado en los volcados de datos, delatando la presencia de registros y datos que se pretenden recuperar. Conociendo las distintas instrucción del lenguaje de consulta SQL, es posible modificar las búsquedas dependiendo de la finalidad de uso de los resultados. Por ejemplo, el desarrollo de nuevos diseños de bases de datos, estructuras de campos y sus características en MySQL, dependen de archivos de instalación en formato PHP o SQL que contienen instrucciones como "Update Set", "Create Table" o "Alter Table". Esto hace que las consultas puedan ser del tipo inurl:install ext:sql intext:"update set".

Volcados de datos CSV
En el caso de los volcados de datos en formato CSV, resulta interesante comprobar cómo la búsqueda genérica ext:csv o filetype:csv, produce millones de resultados entre los que se puede obtener todo tipo de información, incluyendo catálogos bibliográficos y registros de bases de datos. Por ejemplo, la búsqueda de revistas científicas puede automatizarse con búsquedas similares a la siguiente  filetype:csv -github intext:"journal". Entre los resultados obtenidos, se encuentran listados completos de revistas científicas como por ejemplo la proporcionada por el Instituto de Investigación Scripps,   http://www.scripps.edu/library/open/vivo_data/vivo_journal_holdings.csv, especializado en la investigación médica.

martes, 11 de diciembre de 2012

Práctica9. Operadores avanzados y directorios de servidores

La detección de directorios de servidores abiertos con documentación científica, constituyen una fuente de recursos de información poco conocida y explotada en el mundo de la Documentación. El objetivo de la práctica será poner a prueba los conocimientos adquiridos sobre consulta y detección de directorios de servidores en algunas de las instituciones más prestigiosas a nivel académico. 

Descargar práctica9

lunes, 10 de diciembre de 2012

Operadores avanzados y directorios de servidores

Las variables observadas en el artículo anterior permiten elaborar consultas mediante la construcción de la URL y el envío de las cadenas de consulta mediante el método GET. A continuación se exponen en profundidad algunos de los operadores avanzados de Google que mayor interés tienen para el documentalista, así como su aplicación.

Operadores avanzados

Buscar dentro del título de una página web. Operador "intitle"
El título de las páginas web está contenido entre las etiquetas <title></title>. Mediante el operador intitle pueden recuperarse todas las páginas web que contengan en el título algunas de las palabras especificadas en la consulta. Por ejemplo intitle:"diario" que recuperaría todos los diarios de prensa, diarios personales, blogs o páginas que contengan la palabra diario. Esta consulta es de especial utilidad en la restricción de búsquedas y para la concreción de recursos especializados. Además pueden emplearse más de un término de consulta, siempre y cuando esté entrecomillado y separado por espacios. Por ejemplo intitle:"diario" "prensa", permite mejorar la precisión de las páginas web de diarios como medios de comunicación, discriminando mejor los resultados.

Buscar dentro del texto de una página web. Operador "allintext"
Permite buscar en el contenido textual de las páginas web entre las etiquetas <body></body>, lo que significa que la recuperación se realice exclusivamente en este apartado y no en el título, enlaces o url de la propia página web. Por ejemplo allintext:"noticias" "ministerio de economía" "españa" permitiría recuperar todas las noticias publicadas en páginas web sobre el ministerio de economía.

Buscar en URL. Operador "inurl" y "allinurl"
Existen diferencias en el uso de los operadores de búsqueda URL como inurl y allinurl. En principio la recuperación en ambos casos está focalizada en la URL del recurso o página web objetivo y no en sus enlaces. Por otra parte el operador "inurl" indica que la cadena de consulta debe estar presente en la dirección URL o en cualquier parte del nombre de archivo de dicha URL. Por ejemplo una búsqueda inurl:diario oficial permitirá obtener casi 15 millones de resultados. Ello se debe a que los resultados pueden contener las palabras diario oficial en cualquier punto de su URL incluyendo el nombre del archivo o página web. Sin embargo si se emplea el operador allinurl:diario oficial, el número de resultados se reduce por debajo de los 2 millones. Ello ocurre porque el operador allinurl restringe los resultados, mostrando únicamente aquellos que contengan las palabras diario oficial en la URL principal del sitio web, dominio o subdominio, pero no en los nombres de los archivos, documentos, páginas o recursos que enlazan.

Buscar dentro de un sitio web concreto. Operador "site"
Al igual que con la variable as_sitesearch, Google dispone del operador site cuyo propósito es exactamente el mismo. La recuperación mediante el operador site es compatible con el uso de otros operadores como por ejemplo inurl o allinurl. Esto hace posible recuperar páginas web muy concretas en un espacio de un dominio o sitio web previamente acotado. Por ejemplo site:boe.es inurl:2012/12/04 permite recuperar todas las páginas del Boletín Oficial del Estado publicadas en dicha fecha.

Buscar archivos o documentos según su extensión. Operador "filetype"
El operador filetype, realiza las mismas funciones que la variable as_filetype. Su aplicación permite una recuperación precisa de determinados tipos de documentos con cualquier tipo de extensión, más o menos frecuentes. En este sentido una página web de referencia para encontrar el tipo de extensión adecuada para la recuperación de una determinada información es el sitio web http://filext.com/ que contiene una de las mayores bases de datos de extensiones del mundo, con su correspondiente descripción, programas que utilizan o generan ese tipo de archivos, aplicación, datos que contienen, etc. Actualmente contiene más de 51.000 tipos de archivos registrados. En cuanto a la búsqueda y recuperación de información dentro de un tipo de documento, ésta puede ser realizada utilizando los términos de consulta correspondientes después de especificar la extensión del documento objetivo. Por ejemplo filetype:pdf tesis doctoral, permite recuperar todos los documentos con extensión PDF en cuyo texto aparezcan las palabras tesis doctoral.

Buscar enlaces a una página. Operador "link"
El operador link no es equivalente a la variable as_qdr=links pero sí causa el mismo efecto que la variable as_lq. Se utiliza para obtener aquellos recursos o páginas que enlazan la URL especificada. Por ejemplo link:http://www.ucm.eshttps://www.google.com/search?as_lq=http://www.ucm.es proporcionan los mismos resultados, permitiendo observar por cuántas páginas web es vinculada el sitio de la Universidad Complutense.

Buscar texto dentro de los enlaces de un sitio web. Operador "inanchor"
Permite recuperar aquellas páginas web que contengan el texto de la consulta en la representación textual de sus enlaces. Concretando este aspecto, dentro de las etiquetas anchor <a href='URL' title='título' target='Objetivo de carga'>representación textual</a>. Por ejemplo inanchor:recursos biblioteconomía, permitiría recuperar todos los portales y directorios de recursos que estuvieran enlazados mediante el texto especificado.

Obtener información de una página web. Operador "info"
Para obtener todas las posibilidades de acción con respecto a una página web, así como acceder a sus correspondientes resúmenes, se requiere el empleo del operador info. Por ejemplo info:http://ccdoc-sistemasrecuperacioninternet.blogspot.com.es/ muestra todas las opciones de interacción, como la vista en cache del sitio web, páginas similares, páginas enlazadas, páginas del sitio, y consulta por frase exacta de la URL.

Páginas similares o relacionadas. Operador "related"
Muestra sitios web relacionados o similares al especificado. Realiza las mismas funciones que la variable as_rq. El operador relatad es incompatible con el uso de otros operadores.


Directorios de servidores
La localización de listados de directorios es una técnica de gran interés para el Documentalista experimentado, debido a que le permite recuperar documentos que de otro modo sería imposible. Todos los documentos que se divulgan en la web a través de artículos y páginas web están almacenados en alojamientos de servidores, que en muchos casos pueden ser accesibles de forma sencilla utilizando las consultas adecuadas. Por ejemplo si se desean recuperar trabajos, investigaciones, artículos científicos relativos a "Information retrieval" existen dos alternativas. En primer lugar utilizar las conocidas bases de datos bibliográficas como la Web Of Science o por el contrario utilizar métodos menos ortodoxos como la técnica de consulta de listados de directorios de servidores. En tal caso, la consulta intitle:index.of "parent directory" acompañada de los términos o palabras clave adecuados permite listar cualquier directorio abierto. En muchos casos, esta técnica ha permitido encontrar brechas de seguridad en muchos sistemas y redes institucionales, por lo que se ruega un correcto uso de la misma. Por ejemplo, para resolver la consulta "Information retrieval", podría emplearse la sentencia intitle:index.of "parent directory" information retrieval que devolvería documentación producida por algunos de los principales grupos de investigación especializada en el área de conocimiento e incluso encontrar directorios de servidor abiertos de profesores e investigadores concretos como por ejemplo el del profesor Mike Thelwall http://www.scit.wlv.ac.uk/~cm1993/papers/. Esta demostración permite poner de relieve la importancia de este tipo de búsquedas, incluso cuando se trata de la localización de archivos concretos, en cuyo caso la consulta se vería modificada de la siguiente forma intitle:index.of "parent directory" ws_ftp.log information retrieval. El objetivo de la sentencia es introducir el nombre del archivo log tipo que permite visualizar todos los movimientos de carga de archivos en el alojamiento.

No obstante se debe tener en cuenta que no existe una única manera de buscar listados de directorios en servidores. Esto viene determinado por la variedad en la tipología y versiones de los distintos servidores, véase tabla1.

Listado de directorios de servidores web

"AnWeb/1.42h" intitle:index.of
"Apache Tomcat/" intitle:index.of
"Apache-AdvancedExtranetServer/" intitle:index.of
"Apache/df-exts" intitle:index.of
"Apache/" intitle:index.of
"Apache/AmEuro" intitle:index.of
"Apache/Blast" intitle:index.of
"Apache/WWW" intitle:index.of
"Apache/df-exts" intitle:index.of
"CERN httpd 3.0B (VAX VMS)" intitle:index.of
"CompySings/2.0.40" intitle:index.of
"Davepache/2.02.003 (Unix)" intitle:index.of
"DinaHTTPd Server/1.15" intitle:index.of
"HP Apache-based Web "Server/1.3.26" intitle:index.of
"HP Apache-based Web "Server/1.3.27 (Unix) mod_ssl/2.8.11 OpenSSL/0.9.6g" intitle:index.of
"HP-UX_Apache-based_Web_Server/2.0.43" intitle:index.of
"httpd+ssl/kttd" * server at intitle:index.of
"IBM_HTTP_Server" intitle:index.of
"IBM_HTTP_Server/2.0.42" intitle:index.of
"JRun Web Server" intitle:index.of
"LiteSpeed Web" intitle:index.of
"MCWeb" intitle:index.of
"MaXX/3.1" intitle:index.of
"Microsoft-IIS/* server at" intitle:index.of
"Microsoft-IIS/4.0" intitle:index.of
"Microsoft-IIS/5.0 server at" intitle:index.of
"Microsoft-IIS/6.0" intitle:index.of
"OmniHTTPd/2.10" intitle:index.of
"OpenSA/1.0.4" intitle:index.of
"OpenSSL/0.9.7d" intitle:index.of
"Oracle HTTP Server/1.3.22" intitle:index.of
"Oracle-HTTP-Server/1.3.28" intitle:index.of
"Oracle-HTTP-Server" intitle:index.of
"Oracle HTTP Server Powered by Apache" intitle:index.of
"Patchy/1.3.31" intitle:index.of
"Red Hat Secure/2.0" intitle:index.of
"Red Hat Secure/3.0 server at" intitle:index.of
"Savant/3.1" intitle:index.of
"SEDWebserver *" "server at" intitle:index.of
"SEDWebserver/1.3.26" intitle:index.of
"TcNet httpsrv 1.0.10" intitle:index.of
"WebServer/1.3.26" intitle:index.of
"WebTopia/2.1.1a " intitle:index.of
"Yaws 1.65" intitle:index.of
"Zeus/4.3" intitle:index.of
"Apache/1.0" intitle:index.of
"Apache/1.1" intitle:index.of
"Apache/1.2" intitle:index.of
"Apache/1.2.0 server at" intitle:index.of


"Apache/1.2.4 server at" intitle:index.of
"Apache/1.2.6 server at" intitle:index.of
"Apache/1.3.0 server at" intitle:index.of
"Apache/1.3.2 server at" intitle:index.of
"Apache/1.3.1 server at" intitle:index.of
"Apache/1.3.1.1 server at" intitle:index.of
"Apache/1.3.3 server at" intitle:index.of
"Apache/1.3.4 server at" intitle:index.of
"Apache/1.3.6 server at" intitle:index.of
"Apache/1.3.9 server at" intitle:index.of
"Apache/1.3.11 server at" intitle:index.of
"Apache/1.3.12 server at" intitle:index.of
"Apache/1.3.14 server at" intitle:index.of
"Apache/1.3.17 server at" intitle:index.of
"Apache/1.3.19 server at" intitle:index.of
"Apache/1.3.20 server at" intitle:index.of
"Apache/1.3.22 server at" intitle:index.of
"Apache/1.3.23 server at" intitle:index.of
"Apache/1.3.24 server at" intitle:index.of
"Apache/1.3.26 server at" intitle:index.of
"Apache/1.3.27 server at" intitle:index.of
"Apache/1.3.27-fil" intitle:index.of
"Apache/1.3.28 server at" intitle:index.of
"Apache/1.3.29 server at" intitle:index.of
"Apache/1.3.31 server at" intitle:index.of
"Apache/1.3.33 server at" intitle:index.of
"Apache/1.3.34 server at" intitle:index.of
"Apache/1.3.35 server at" intitle:index.of
"Apache/2.0 server at" intitle:index.of
"Apache/2.0.32 server at" intitle:index.of
"Apache/2.0.35 server at" intitle:index.of
"Apache/2.0.36 server at" intitle:index.of
"Apache/2.0.39 server at" intitle:index.of
"Apache/2.0.40 server at" intitle:index.of
"Apache/2.0.42 server at" intitle:index.of
"Apache/2.0.43 server at" intitle:index.of
"Apache/2.0.44 server at" intitle:index.of
"Apache/2.0.45 server at" intitle:index.of
"Apache/2.0.46 server at" intitle:index.of
"Apache/2.0.47 server at" intitle:index.of
"Apache/2.0.48 server at" intitle:index.of
"Apache/2.0.49 server at" intitle:index.of
"Apache/2.0.49a server at" intitle:index.of
"Apache/2.0.50 server at" intitle:index.of
"Apache/2.0.51 server at" intitle:index.of
"Apache/2.0.52 server at" intitle:index.of
"Apache/2.0.55 server at" intitle:index.of
"Apache/2.0.59 server at" intitle:index.of


Tabla1. Consultas para mostrar directorios de distintos tipos y versiones de servidores

Por otra parte, también pueden aplicarse otras técnicas de consulta de directorios, denominadas de "de recorrido de directorios". Consisten en el empleo del operador inurl combinado con las consultas anteriores. Ello permite especificar otros directorios que estén contenidos dentro del principal, efectuando un recorrido completo en todos sus apartados, por ejemplo intitle:index.of "parent directory" inurl:"/paper/" information retrieval permite recuperar todos los directorios que contengan artículos o papers especializados en recuperación de información. Para ello los resultados deberán cumplir la condición de contener una carpeta denominada "paper".

martes, 4 de diciembre de 2012

Práctica8. Consultas dinámicas URL en Google

Las consultas dinámicas mediante URL y método GET permiten efectuar búsquedas precisas y rápidas sin necesidad de utilizar el interfaz gráfico de consulta avanzada de Google. Comprender su funcionamiento, permite conocer con qué variables y entrada de datos trabaja el buscador y qué ventajas pueden ser obtenidas con su uso. Por ejemplo, descargar todos los archivos y documentos sobre una temática, publicados por una institución, en un determinado sitio web, obtener información de volcados de datos de bases de datos, entre otros.

Descargar práctica8

lunes, 3 de diciembre de 2012

Técnicas de consulta dinámica GET en Google

Las consultas dinámicas en los buscadores son consideradas una de las herramientas más versátiles para la recuperación de información. Se considera que una consulta es dinámica cuando el sistema que hace posible la transmisión de las cadenas de consulta por medio del método GET o POST, permite su correcto procesamiento para su resolución en una base de conocimiento o colección. En este sentido, se pueden realizar consultas empleando el método POST propio de los formularios de consulta, o bien por medio de la construcción de una dirección URL que posea la información de la consulta. Ambos métodos son extensivos en la mayoría de buscadores de la web, especialmente en Google, que posibilita una amplia lista de opciones de recuperación utilizando para ello sus variables.

Qué es el método GET y POST
Los métodos GET y POST forman parte del sistema de peticiones y comunicaciones del protocolo HTTP utilizado extensivamente en la web. El método de petición POST, permite el envío de datos a un servidor web mediante una cabecera y cuerpo de mensaje para su posterior almacenamiento y tratamiento. Esto significa un bloque de datos enviado con la solicitud o petición en el cuerpo del mensaje, especificando el tipo de contenido y datos. Su uso más conocido se encuentra en cualquier formulario de la web dentro de los cuáles se indica el método de transmisión de datos, la página web de destino encargada del procesamiento de la información y los campos de texto, campos seleccionables y áreas de texto que contendrán los datos. De esta forma es posible enviar datos recuperables a través de los nombres dados a dichos campos de texto. Véase en la tabla1 un ejemplo de formulario con campos definidos.


<form action='pagina-web-destino.php' method='post'>
<input type='text' name='data1' value=''/>
<input type='text' name='data2' value=''/>
<input type='text' name='data3' value=''/>
<input type='text' name='data4' value=''/>
<input type='text' name='data5' value=''/>
<input type='submit' name='send' value='Enviar datos'/>
</form>

Tabla1. Ejemplo de formulario web que emplea el método POST

En cambio el método HTTP GET se emplea para efectuar peticiones de información o recuperación de información en un servidor web objetivo. Esto es una petición que se efectúa por medio de la URL de una página de consulta, que está habilitada para recopilar los términos de una búsqueda o bien sus parámetros (contexto en el que se explica el presente artículo). Además, las peticiones GET están diseñadas para no cubrir otros cometidos como podría ser el envío de datos seguros para su almacenamiento, tal como funcionaría con el método POST. De hecho el método GET es público, carece de cifrado y no se considera un método seguro para el envío de datos. Por este motivo su correcto diseño e interacción en los servicios de búsqueda y recuperación de información resulta esencial para evitar problemas de alteración o modificación de los datos del servidor. De hecho, cuando un usuario consulta con su navegador web cualquier página web como por ejemplo http://www.google.es/ está efectuando una consulta o petición a un servidor remoto, véase tabla2. Dicha petición permite al servidor HTTP de Google interpretar la consulta que se está realizando por método GET, concretamente la aplicación de consulta del navegador (source=search_app), que no existen más peticiones (Connection:close), que el idioma, codificación y tipo de datos del navegador del cliente son los especificados, no permitiendo el control de versiones del cache.

Petición de cabecera HTTP

GET /webhp?source=search_app HTTP/1.1
Host: www.google.es
Connection: close
Accept-Encoding: gzip
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
Cache-Control: no-cache

Tabla2. Ejemplo de petición de cabecera HTTP

Ante la petición del cliente, existe una respuesta de cabecera HTTP, véase tabla3. En ella se muestra el estado de recepción de la petición, normalmente el mensaje suele ser 200 OK que significa una correcta recepción de los datos de la petición. Por otro lado la fecha y hora de la respuesta, identificación de que la respuesta no expira (-1), datos de sesión (Cookies), plataforma de privacidad de las consultas (P3P), identificación del servidor (GWS Google Web Server), frame de carga y cierre de conexión. Junto con la cabecera se remite el cuerpo del mensaje de respuesta enviado en formato HTML como página web.

Respuesta de cabecera HTTP
Status
HTTP/1.1 200 OK
Date
Mon, 03 Dec 2012 07:19:55 GMT
Expires
-1
Cache-Control
private, max-age=0
Content-Type
text/html; charset=ISO-8859-1
Set-Cookie
PREF=ID=a2379f825779c3c2:FF=0:TM=1354519195:LM=1354519195:S=3xPq3l_pqAmIbJWo; expires=Wed, 03-Dec-2014 07:19:55 GMT; path=/; domain=.google.es
Set-Cookie
NID=66=ZC7AMosQZKkONqSiAvUIdkVNisns4FgofwpJJaalT3KvKcJoHTkWr1wnStTSLw80-X9cjHahtjNz7lqj5kH2bET1JaOjjkEjMV_Dyts_AyX8smZnmbijRhul1o8K-sKB; expires=Tue, 04-Jun-2013 07:19:55 GMT; path=/; domain=.google.es; HttpOnly
P3P
CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."  
Server
gws
X-XSS-Protection
1; mode=block 
X-Frame-Options
SAMEORIGIN
Connection
close
Tabla3. Ejemplo de respuesta de cabecera HTTP


Las variables
Si bien, el envío de datos por medio del método GET y POST de HTTP, posibilita la recuperación, consulta y almacenamiento de la información en la web, también es cierto, que para poder manejar dicha información, ésta debe ser correctamente identificada. Esto es determinar cual es el nombre de las variables que contendrán los datos o informaciones que se transmiten. De hecho una variable es un método de almacenamiento de cadenas de caracteres, que se utiliza para recuperar la información enviada por los distintos métodos de HTTP, véase tabla4.


Variable GET
Variable POST
PHP
$_GET[nombre-variable]
$_POST[nombre-variable]
ASP
Request.QueryString("nombre-variable")
RUBY
CGIMethods.parse_query_paremeters (@request.query_string)
CGIMethods.parse_query_parameters (@request.raw_post)
Tabla4. Métodos de recuperación de variables

Por ejemplo, de acuerdo al formulario de la tabla1, las variables POST que la pagina-de-destino.php recuperaría serían: $_POST[data1], $_POST[data2], $_POST[data3], $_POST[data4], $_POST[data5]. La notación de las variables corresponde al lenguaje de programación PHP y se observa cómo el nombre de los campos del formulario, identifica el nombre de la variable transmitida por método POST. Con el método GET sucede lo mismo, sólo que el envío de datos se produce a través de la URL.


Consultas básicas en Google mediante URL

Consulta básica dinámica en Google
Variable de consulta básica de Google ( q )
https://www.google.com/search?q=consulta
Variable de idioma ( hl )
https://www.google.com/search?hl=idioma&q=consulta
Conversiones ASCII a hexadecimal. Véase: http://www.mikezilla.com/exp0012.html
( Espacio en blanco ) = ( %20 )
Tabla5. Consulta dinámica básica en Google


Consultas avanzadas en Google mediante URL

Consulta avanzada dinámica en Google
Variable
Valor/es
Descripción
q
Consulta
Cadena de consulta completa del usuario
start
Número superior a 0
Muestra un determinado número de resultados desde 0
num
1-100
Muestra determinado número de resultados por página
filter
0-1
Filtrar resultados duplicados. Si se usa 0 mostrará resultados únicos. 
restrict
Código de restricción
Código de restricción de resultados por país. Por ejemplo: countryES, countryFR, countryDE, countryUK, countryUS
hl
Código de idioma
Idioma en el que Google muestra la información de los resultados. Por ejemplo: es, en, de, fr, it
lr
Código de idioma
Recupera páginas web escritas en el código de idioma especificado. Por ejemplo: lang_es, lang_en, lang_fr, lang_de, lang_de, lang_it
ie
UTF-8
Codificación del input de la consulta en Google
oe
UTF-8
Codificación del output de resultados de Google
as_epq
Consulta
Frase de consulta exacta, evita tener que emplear las comillas dobles en la variable ( q )
as_ft
i - e
El valor ( i ) permite incluir en la búsqueda el tipo de archivo determinado. El valor ( e ) permite excluir de la búsqueda el tipo de archive determinado
as_filetype
Extensión de archive
Define el tipo de archivo por su extensión que se aplicará en la búsqueda
as_qdr
m - y
Determina el periodo de tiempo dentro del cual se recuperarán los contenidos. Por ejemplo: m1, m2, m3 (corresponde al último mes, últimos 2 meses y últimos tres meses), y2, y3 (corresponde a los últimos dos y 3 años)
as_nlo
Número inferior
Busca resultados con números comprendidos entre as_nlo y as_nhi
as_nhi
Número superior
as_oq
consulta
Recupera páginas que contengan alguna de las palabras indicadas
as_occt
any, title, body, url, links
Recupera páginas que contengan alguna de las palabras indicadas en un punto específico. Por ejemplo el valor (any) indica en cualquier punto de la página web, (title) especifica en el título, (body) corresponde al cuerpo de la página web, (url) en la dirección de la propia página y (links) en alguno de los enlaces propios de la página web.
as_dt
i - e
El valor ( i ) permite incluir búsquedas del dominio especificado. El valor ( e ) permite excluirlas
as_sitesearch
Consulta
Permite incluir o excluir de la consulta un dominio o sitio web que se especifique.
safe
active
off
Permite realizar búsquedas seguras
as_rq
URL
Permite realizar búsquedas de páginas similares a la URL especificada
as_lq
URL
Recupera páginas vinculadas a la URL especificada
Tabla6. Consulta dinámica avanzada en Google

Referencias

Apache Software Foundation. 2008. Class GetMethod [Especificaciones oficiales del método GET]. Disponible en: http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/methods/GetMethod.html

LONG, J. 2005. Hacking con Google. Anaya Multimedia.

LONG, J. 2008. Google Hacking 2. Mitp

LONG, J. 2012. Google Hacking for Penetration Testers. OReilly