È possibile sapere quale linguaggio di programmazione utilizza un sito web?

48

Ad esempio, stackexchange.com , senza chiedere al proprietario del sito o a Google le informazioni sullo sviluppo del sito web, è possibile sapere quale lingua viene utilizzata nel back-end?

Sembra che il sito web non abbia bar .extension , ad esempio .php che può indicare che è stato sviluppato in PHP , ma senza l'estensione, come posso saperlo?

    
posta Ted Wong 04.06.2012 - 11:35
fonte

9 risposte

81

Ci sono indicatori. Alcuni sono più facili da trovare, altri sono più difficili.

  • estensioni di file: .php indica che il sito è scritto in PHP, .asp indica ASP classico, .aspx indica ASP.NET, .jsp indica JSP Java, ...
  • nomi di cookie: JSESSIONID è un nome di cookie ampiamente utilizzato nei server Java
  • Intestazioni
  • : alcuni sistemi aggiungono intestazioni HTTP alle loro risposte
  • contenuto HTML specifico:
    • modelli come molti div-wrapper con uno schema di denominazione di classe coerente usato da CMS come Drupal.
    • commenti nel tag HTML o meta nella testa che indica direttamente / indirettamente l'utilizzo dello strumento
  • Messaggi di errore predefiniti o progettazione di pagine di errore (ad esempio eseguendo il ping di un URL falso per visualizzarne 404)
  • A volte i tag di commento vengono inseriti nella pagina per scopi di versionamento che forniscono un indizio
  • ...

Ma tutti quelli possono essere rimossi / modificati / falsificati. Alcuni sono più facili da modificare rispetto ad altri, ma nessuno è affidabile al 100%.

Ci sono vari motivi per cambiare questi indicatori:

  • Modifica la tecnologia sottostante ma non vuoi modificare i tuoi URL
  • Vuoi dare il minimo possibile di informazioni sulla tua tecnologia
  • (correlato al precedente) Preferisci non essere il primo stop per lo script kiddie bus quando vengono scoperte / rese note vulnerabilità note a livello di piattaforma
  • Vuoi sembrare "in" (anche "anche se attualmente significa avere URL stile REST senza estensione).
  • ...
risposta data 04.06.2012 - 11:39
fonte
8

Bene, c'è il file humans.txt che uno sviluppatore può inserire nel dominio che fornisce alcune informazioni sullo sviluppo del sito, forse su chi ha lavorato su di esso e su quali standard o strumenti sono stati utilizzati. Se vogliono che tu sappia di questi tipi di informazioni, potrebbero / dovrebbero metterlo lì. Tuttavia, proprio come qualsiasi altra cosa è opzionale, quindi non può garantire di informarti. Controlla humans.text

    
risposta data 07.06.2012 - 19:54
fonte
4

No, potrebbe essere piuttosto difficile se non impossibile se il webmaster non vuole rivelare. Ci sono alcune caratteristiche di pochi framework, ma possono essere nascosti.

  • estensioni di file: non esiste un vero motivo per utilizzare quelli standard e la maggior parte dei MVC moderni utilizza comunque il routing degli URL. Quindi, a meno che il sito non sia in giro da un po 'di tempo, probabilmente non ne vedrai alcuno (ad esempio, stackexchange non usa l'estensione .aspx );

  • ID sessione: ad esempio PHPSESSID è il valore predefinito per PHP, ma può essere facilmente sovrascritto ;

  • intestazioni con server Web e versioni in linguaggio di scripting: può essere disattivato o anche falsificato.

Cose difficili da nascondere:

  • PHP gestisce più valori per la stessa variabile stringa di query aggiungendo [] al nome, quindi vedresti qualcosa di simile: ...?var[]=1&var[]=3&... . AFAIK, è l'unico framework web che lo gestisce in questo modo.
risposta data 04.06.2012 - 15:25
fonte
4

In breve: possibile per nascondere la lingua che stai utilizzando nel back-end. Esempio banale: considera una pagina "Hello World"; sarebbe estremamente difficile capire quale framework / linguaggio fosse usato nel back-end (assumendo che le cose di base come i cookie di sessione siano impostate manualmente o non siano in uso).

Tuttavia, il punto delle strutture è quello di risparmiare la necessità di ri-implementare le funzionalità e di farti lavorare in un modo standardizzato. Quasi tutti i framework hanno le loro specifiche piccole rivelazioni che li daranno via, se si guarda abbastanza vicino. Come altri hanno sottolineato, è possibile provare a nasconderlo, usando la configurazione o ri-implementando varie funzionalità standard. Tuttavia, direi che per i siti di grandi dimensioni sarebbe estremamente difficile nascondere completamente tutto, e anche se lo avessi fatto, avresti usato pochissimo del tuo framework.

In sintesi, direi che è quasi sempre possibile avere una buona idea di ciò che viene utilizzato sotto (con un esame attento e un pungolo). Nascondere il framework utilizzato è possibile, ma diventa rapidamente non fattibile per i siti di grandi dimensioni.

Le risposte precedenti hanno alcuni buoni esempi di varie spie che hanno framework e linguaggi. Vorrei aggiungere che vari motori di visualizzazione hanno comportamenti specifici relativi agli spazi bianchi che possono essere utilizzati per identificarli. Il motore Razor utilizzato in MVC3 + ha alcune stranezze abbastanza specifiche che potrebbero essere utilizzate per identificarlo, o almeno, restringere la lista dei sospetti (anche in questo caso, si può fare un passo laterale, ma poi, lo stai usando?).

    
risposta data 05.06.2012 - 10:29
fonte
4

Non so se questo in particolare risponda alla tua domanda, ma c'è uno strumento che mi è stato di grande aiuto: Wappalyzer . È un'estensione per Firefox / Chrome che scopre le tecnologie utilizzate sui siti web. Rileva sistemi di gestione dei contenuti, server Web, framework JavaScript, strumenti di analisi e molti altri. So che non è esattamente quello che stai cercando, ma ti dà un'idea molto vicina di ciò che un sito utilizza. Questo è ciò che mostra per programmers.stackexchange.com

    
risposta data 10.06.2012 - 05:07
fonte
1

È possibile scrivere un sito in modo tale che nessun indizio sulla tecnologia del server sarà visibile al cliente.

Tuttavia, quando qualcuno utilizza alcuni framework, come IceFaces per Java , è praticamente impossibile farlo perché vedrai qualcosa di simile nelle tue richieste:

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

Gran parte degli altri framework hanno i loro timbri caratteristici nel corpo della pagina o nelle richieste / risposte. Trovali, google e avrai una risposta.

Tuttavia, in ciascuna lingua, se si sceglie di creare HTML da zero (nel mondo Java un esempio potrebbe essere velocity modelli) o scegliere puro modo AJAX, dove il server restituisce / accetta solo messaggi JSON, e il client è interamente in JavaScript - un modo difficile, fino a quando non si genera un'eccezione non riconosciuta che rivela la tecnologia sotto.

    
risposta data 04.06.2012 - 15:35
fonte
0

Su siti che utilizzano framework completo o CMS, a volte puoi provare a interrogare la pagina di amministrazione, ti verrà presentata una finestra di accesso e identificare il framework da cui proviene perché la maggior parte delle persone non ricerca il modello di amministrazione. Ad esempio, se il tuo sito è example.com, prova ad andare su example.com/admin/ o example.com/wp-admin/ (wordpress).

    
risposta data 11.06.2012 - 04:40
fonte
-2

Dovresti controllare questo sito: Creato con . Ti consente di sapere tutte le informazioni se disponibili.

    
risposta data 05.12.2015 - 21:22
fonte
-5

No, non è possibile trovare la lingua utilizzata nei siti web visualizzando il codice sorgente della pagina Web e cercando l'esistenza delle lingue. a causa dell'uso di più di una lingua per la creazione di siti Web per fornire alta sicurezza

    
risposta data 14.04.2014 - 08:44
fonte

Leggi altre domande sui tag