¿Es posible saber qué lenguaje de programación utiliza un sitio web?

48

Por ejemplo, stackexchange.com , sin preguntarle al propietario del sitio ni a Google sobre su información sobre el desarrollo del sitio web, ¿es posible saber qué idioma se usa al final?

Parece que el sitio web no tiene .extension bar, por ejemplo, .php que puede indicar qué se desarrolló en PHP , pero sin la extensión, ¿cómo puedo saberlo?

    
pregunta Ted Wong 04.06.2012 - 11:35

9 respuestas

81

Hay indicadores. Algunos son más fáciles de encontrar, otros son más difíciles.

  • extensiones de archivo: .php indica que el sitio está escrito en PHP, .asp indica ASP clásico, .aspx indica ASP.NET, .jsp indica Java JSPs, ...
  • nombres de cookies: JSESSIONID es un nombre de cookie muy utilizado en servidores Java
  • encabezados: algunos sistemas agregan encabezados HTTP a sus respuestas
  • contenido HTML específico:
    • patrones como muchos envoltorios div con un esquema de nomenclatura de clase consistente como el que usan los CMS como Drupal.
    • los comentarios en el HTML o las metaetiquetas en la cabecera indican directa o indirectamente el uso de la herramienta
  • Mensajes de error predeterminados o diseño de página de error (por ejemplo, hacer ping a una URL falsa para ver sus 404)
  • A veces, las etiquetas de comentarios se colocan en la página con fines de control de versiones, lo que proporciona una pista.
  • ...

Pero todos esos pueden eliminarse / modificarse / falsificarse. Algunos son más fáciles de cambiar que otros, pero ninguno es 100% confiable.

Hay varias razones para cambiar esos indicadores:

  • Cambia la tecnología subyacente pero no desea cambiar sus URL
  • Desea proporcionar la menor cantidad de información posible sobre su tecnología
  • (relacionado con el anterior) Preferiría no ser la primera parada para el script kiddie bus cuando se descubren / publiquen vulnerabilidades conocidas en toda la plataforma
  • Quieres parecer "in" (incluso 'aunque eso significa que actualmente tienes URL de estilo REST sin extensión).
  • ...
respondido por el Joachim Sauer 04.06.2012 - 11:39
8

Bueno, existe el archivo humans.txt que un desarrollador puede colocar en el dominio que proporciona información sobre el desarrollo del sitio, quizás quién trabajó en él y qué estándares o herramientas se usaron. Si quieren que sepas sobre ese tipo de información, podrían / deberían ponerla allí. Sin embargo, al igual que cualquier otra cosa, esto es opcional, por lo que tampoco puede garantizar informarle. Visite humans.text

    
respondido por el Dandre Allison 07.06.2012 - 19:54
4

No, podría ser difícil si no imposible si el webmaster no quiere revelarlo. Existen algunas características de pocos marcos, pero se pueden ocultar.

  • extensiones de archivo: no hay ninguna razón real para usar las estándar, y la mayoría de los MVC modernos utilizan el enrutamiento de URL de todos modos. Por lo tanto, a menos que el sitio haya existido durante algún tiempo, es probable que no vea ninguno (por ejemplo, stackexchange no usa la extensión .aspx );

  • ID de sesión: por ejemplo, PHPSESSID es predeterminado para PHP, pero se puede anular fácilmente ;

  • encabezados con servidor web y versiones de lenguaje de scripting: pueden ser desactivado o incluso falsificado.

Cosas que son más difíciles de ocultar:

  • PHP maneja múltiples valores para la misma variable de cadena de consulta agregando [] al nombre, por lo tanto, vería algo como: ...?var[]=1&var[]=3&... . AFAIK, es el único framework web que lo maneja de esa manera.
respondido por el vartec 04.06.2012 - 15:25
4

En resumen: es posible ocultar el idioma que está utilizando en el back-end. Ejemplo trivial: considera una página "Hola Mundo"; sería extremadamente difícil averiguar qué marco / idioma se estaba usando en el back-end (asumiendo que las cosas básicas como las cookies de sesión se configuran manualmente o no están en uso).

Sin embargo, el objetivo de los marcos es evitar que tenga que volver a implementar la funcionalidad y que trabaje de manera estandarizada. Casi todos los marcos tienen sus pequeños cuentos específicos que los regalarán, si se mira lo suficientemente cerca. Como han señalado otros, es posible tratar de ocultarlos, mediante la configuración o la reimplementación de varias características estándar. Sin embargo, yo diría que para los sitios grandes, sería extremadamente difícil ocultar todo por completo, e incluso si lo consiguieras, estarías usando muy poco de tu marco.

En resumen, yo diría que casi siempre es posible tener una buena idea de lo que se está utilizando debajo (con un examen y una indagación cuidadosos). Es posible ocultar el marco utilizado, pero rápidamente no es factible para sitios grandes.

Las respuestas anteriores tienen algunos buenos ejemplos de varios cuentos que tienen los marcos y los idiomas. Me gustaría agregar que varios motores de visualización tienen un comportamiento específico relacionado con espacios en blanco que se puede usar para identificarlos. El motor Razor utilizado en MVC3 + tiene algunas particularidades bastante específicas que podrían usarse para identificarlo, o al menos, reducir la lista de sospechosos (de nuevo, puedes evitarlo, pero luego, ¿lo estás usando?). / p>     

respondido por el Daniel B 05.06.2012 - 10:29
4

No sé si esto responde específicamente a su pregunta, pero hay una herramienta que me ayudó mucho: Wappalyzer . Es una extensión de Firefox / Chrome que descubre las tecnologías utilizadas en los sitios web. Detecta sistemas de administración de contenido, servidores web, marcos de JavaScript, herramientas de análisis y muchos otros. Sé que no es precisamente lo que está buscando, pero le da una idea muy cercana de lo que utiliza un sitio. Esto es lo que muestra para programmers.stackexchange.com

    
respondido por el Ither 10.06.2012 - 05:07
1

Es posible escribir un sitio de tal manera que el cliente no pueda ver pistas sobre la tecnología del servidor.

Sin embargo, cuando alguien utiliza algunos marcos, como IceFaces para Java , es prácticamente imposible hacerlo porque verás algo así en tus solicitudes:

ice.submit.partial=true&ice.session=c4f4jxT36tM_38848488&ice.view=3&ice.focus=&rand=0.322803445

Gran parte de otros marcos tienen sus sellos característicos en el cuerpo de la página o en las solicitudes / respuestas. Encuéntralos, busca en google y tendrás una respuesta.

Sin embargo, en cada idioma, si elige crear HTML desde cero (en el mundo de Java, un ejemplo sería velocidad plantillas) o elige la forma AJAX pura, donde el servidor devuelve / acepta solo mensajes JSON. y el cliente está completamente en JavaScript, una manera difícil, hasta que se produce una excepción incomparable que revela la tecnología.

    
respondido por el Danubian Sailor 04.06.2012 - 15:35
0

En los sitios que usan un marco completo o CMS, a veces puede intentar consultar la página de administración, se le presentará un cuadro de inicio de sesión e identificará de qué marco proviene porque la mayoría de las personas no se parecen a la plantilla de administrador. Por ejemplo, si su sitio es example.com, intente ir a example.com/admin/ o example.com/wp-admin/ (wordpress).

    
respondido por el Lie Ryan 11.06.2012 - 04:40
-2

Debería visitar este sitio: Built With . Te permite conocer toda esa información si está disponible.

    
respondido por el Eric Leroy 05.12.2015 - 21:22
-5

No, no es posible encontrar el idioma utilizado en los sitios web al ver el código fuente de la página y buscar la existencia de idiomas. debido al uso de más de un idioma para crear un sitio web que proporcione alta seguridad

    
respondido por el chehu 14.04.2014 - 08:44

Lea otras preguntas en las etiquetas