views:

2950

answers:

13

Quite often I come across a nice looking or functional website, and wonder what technology was used to create it. What techniques are available to figure out what a particular website was built with?

Few frameworks seem to include any kind of generator meta tag like web editors do. Are there any tell-tale signs of particular languages and/or frameworks?


Summary of answers

Site URLs may betray the framework and/or programming language but cannot be relied upon (e.g. file extensions such as .asp). HTTP response headers, cookies, stylesheets and source comments may also give clues.

Some nice tools for querying site details (no doubt there are many more):

Firefox addons:

Bookmarklets:

+6  A: 

URLs can give a lot of clues, especially with Content Management Systems.

For example "http://abcxyz.com/node/46" looks a lot like Drupal.

Also many frameworks have standard JavaScript and CSS files they use.

Mel
Nice! I like the standard javascript and particularly standard CSS files as a fingerprint.
Mat
Incorrect. SO uses .NET and has a syntax similar to your example. A website I developed uses the same syntax and runs on Django.
Yuval A
+6  A: 

There are all sorts of things you can look out for, but it doesn't really give you any certainty as to the technology behind a site. In general, information like that is something people will want to hide, as the more information that is exposed the easier it might be for malicious parties to identify security vulnerabilities or denial of service holes.

If I was interested I'd probably look, in no particular order, at:

  • urls, and file extensions.
  • HTTP response headers
  • Source code for comments, or standard JS libraries

Incidentally, the tools mentioned in other answers are only looking at some of the above properties of the site for you, albeit automatically, and slightly quicker. :)

Andy Hume
There were lots of good answers so I've somewhat delayed choosing an accepted one, but this fitted best. It covers the basic starting points to use perhaps before delving for automated tools.
Mat
+16  A: 

You could use http://builtwith.com to figure out which server and programming language was used. For example it told me that SO uses IIS7, google analytics, html4 and utf8.

If you want to know the framework...well that will probably not be possible just from looking at the site. Why don't you write them an email? ;)

Kim
oh this is a good resource .. tnx
Scott Evernden
Write them an email, well that's lateral thinking for you. Good point! And I like builtwith.com, just need some way to bookmark this answer. Cheers.
Mat
+1  A: 

You can use domaintools.com to lookup the server information for a website and narrow down to whether it's open source / Microsoft:

http://whois.domaintools.com/stackoverflow.com

And after that it's a matter of looking in the footer for tip-offs such as "Powered by WordPress" or "vBulletin" etc.

Another cool tool I need to find a way to bookmark within SO. I'll have to add these links to the quesion.
Mat
+1  A: 

yes there are some telltale signs for common CMSs like Drupal, Joomla, Pligg, and RoR etc .. .. ASP.NET stuff is easy to spot too .. but as the framework becomes more obscure it gets harder to deduce ..

What I usually is compare the site i am snooping with another site that I know is built using a particular tech. That sometimes works ..

Scott Evernden
+1  A: 

Most ASP.NET sites are easy to identify from the .aspx in the URLs. There are also telltale signs in the HTML source, like a hidden form field named __VIEWSTATE or the WebResource.axd JavaScript. HTML elements will often have id attributes starting with something like _ctl0.

Rails sites will usually include stylesheets from /stylesheets and JavaScript files from /javascripts and each URL will usually have a query string containing a timestamp to thwart caching. Form fields will often follow the naming convention of model_name[attribute_name].

Milo
+6  A: 
balexandre
Excellent! I'm bagging that one!
Mat
glad you liked it :) you can also click the "correct icon" that is bellow the reputaion number for this question so you can mark it as an accepted answer if you wanted ;)
balexandre
Any chance you know of a Domain Details Extension for Chrome?
Andrew Hubbs
@Andrew did at least try to find it out? it's the first result I get searching on Google!
balexandre
+1  A: 

Go to Netcraft and use the "What's that site running?" search box in the top left corner. Click here for the report on http://www.stackoverflow.com">Stack Overflow. It won't necessarily be correct (e.g., there could be caching or load balancing in the way), but it often gives you the clue you need.

RedFilter
A: 

Firefox has an addon to tell what library is being used:

https://addons.mozilla.org/en-US/firefox/addon/10083

A: 

Some people might even deliberately obscure the technology they use. After all, it wouldn't take me long to tweak apache so that ".asp" actually ran perl scripts and put "powered by Microsoft IIS" into my footer despite the fact I used MySQL.

That way you'd spend all your time trying to hack my site using vulnerabilities it doesn't actually have.

AmbroseChapel
+2  A: 

Examining the cookies the site gives can reveal the underlying framework. CodeIgniter, for example defaults to a telltale ci_sessions cookie. Sites using PEAR Auth will do something similar.

rooskie
A: 

http://www.quarkbase.com/ is a very nice tool and information website

Amr ElGarhy
+1  A: 

Check out Chrome Sniffer, a great light-weight solution.

Mutewinter