How can we Identify a SharePoint Site ?

UPDATE: This was old but same tricks also applies to SharePoint 2010 also. Just its 14 hive instead 12 in case with some more additional files

We have lot of websites in internet and many of them are in SharePoint.

If they are really legendary sites then you will defiantly find them in Microsoft Case studies : http://www.microsoft.com/casestudies

There  are also sites like www.wssdemo.com which contains really huge lists of public websites hosted on MOSS, but not every site you will find there.

So if you see any cool site, how will you find out whether its a MOSS site or not ?

There are  some really cool exceptional ways.

First is to check which hosting server it is. SharePoint always runs on IIS. You can use the FireFox addon like ServerSpy or any HttpResponse tracking tools to check it.

Another way to confirm for ASP.Net presence is checking the presence of viewstate.

You can also check the paths combinatons for IIS presence (for 403, 500 errors). For example one of site given in comments I checked IIS presence using this tweaked url http://www.starbucks.com/static/images/global/

Next is to check confirmation for “Made In SharePoint” :

One way is you might be able to identify that it is a SharePoint Site by going through all the Links and observing the URL for all the Pages and the Folder structure where all these pages are stored (especially the Foldername/Pages/Filename.aspx pattern). This Pattern indicates the SharePoint Publishing Site.

Observing URL is really great but not always gives true and satisfactory result.

If you are using FireFox as browser with FireBug, open up console and view JavaScripts of page. If you see init.js, core.js etc. It’s confirm now its MOSS site.

Another way is just do “View Source” from any browser of your site. If it’s SharePoint site (Publishing most cases) you will see something like

<head><meta name=”GENERATOR” content=”Microsoft SharePoint” /><meta http-equiv=”Conten ……

Dont forget to check Javascript section just after <Title>
you will see reference JS from
src=”/_layouts/1033/init.js?

Dont forget to check Javascript section just after <Title>

you will see reference JS from src=”/_layouts/1033/init.js?

well thats our 12 hive.

Good enough as proof. But still what if site has its own master pages and have customized in such way that these meta tags and core.js file are not in used or are removed. Since most public facing SharePoint sites redesign masterpage as per their company brand. Its strong chance you will see their masterpage, not default one.

BUT most of them  never delete the default css and images that comes with default install of SharePoint.

So if you spoof the URL little like

http://<<Site name>>/_layouts/images/homepagetopzoneimage.jpg

you can see your SharePoint friends

Put any image name from “12\TEMPLATE\IMAGES” folder in url with format like

http://<<Site name>>/_layouts/images/<<image name>>

Same goes for JavaScripts files too.

NOTE: When accessing any of the protected paths like _layouts if it asks for authentication also gives indication of SharePoint, as not all paths are having anonymous access.

And now one more last bust not least way.

If its SharePoint site there are also web services with it.  You can call any of webservice (If banned then see your fav “Unknown Error” page).

e.g. http://sharepoint.microsoft.com/_vti_bin/lists.asmx

You can directly access the error page too like http://www.ferrari.com/_layouts/error.aspx

But coolest part is have some twist in calling these web services. If its SharePoint site there is “_layouts” folder. And if its “_layouts” try this :

http://<<Site name>>/_layouts/Lists.asmx

(Yes I know Lists.asmx is not in _layouts folder) . So you will see something like

http://sharepoint.microsoft.com/_layouts/Lists.asmx

Huh !!!! All developers knows this screen 😉

Do you still need proof ?  🙂

Here is one more way

Check _layouts/xsl/internal.xsl which is also base include file for all custom xslts

http://sharepoint.microsoft.com/_layouts/xsl/internal.xsl

Ohh, few more URL like this

http://sharepoint.microsoft.com/_layouts/dsg_eula.htm

http://sharepoint.microsoft.com/_vti_bin/microsoft.sharepoint.client.xml

http://sharepoint.microsoft.com/_vti_bin/namespaces.xml

WOW !!!! Enough. I know its SharePoint site now.

BUT, Hey I want know which version it is ?

No Problem, try this:

http://sharepoint.microsoft.com/_vti_pvt/buildversion.cnf

OOPS !!!! Dont you think Microsoft missed something here ? Infact NO. Microsoft is providing you detail version number with update in each response of page request. If you have FireFox and addon like Web Developer Toolbar then see the page headers ( Web Developer Tool bar > Information > View Page Headers) and you will find something like :

Cache-Control: private
Content-Type: text/html; charset=utf-8
Vary: *
Server: Microsoft-IIS/7.5
SPRequestGuid: e4d04a38-3944-45f1-9541-ba044d79314a
X-SharePointHealthScore: 0
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.6108
S: AA11

Notice that “MicrosoftSharePointTeamServices: 14.0.0.6108″ that is SharePoint version number with update. Some more SharePoint specific parts are also displayed like “SPRequestGuid” and “X-SharePointHealthScore”.

 

There you go.

Happy net surfing !!!!!!

UPDATE: I got question in many events reason for this error and how to prevent it. Unfortunately to understand this asmx errors, you need to use reflector and go deep to see how Http Handler  which determines the context of ShaePoint works. As per architecture I understood so far it will take too major changes to fix this. Lets hope some day this will be fixed, and I need to find some more new way.

UPDATE: As per comments one challenge given was for Starbucks coffee site ( http://www.starbucks.com/). WOW, it was really excellent challenge. After all diggs, one thing not entire site is in SharePoint. Only Coffee section is in SharePoint now. Their earlier version was built using MOSS, and I was able to find it as case study using Google. For new version here is one link that tells its SharePoint : http://blogs.starbucks.com/utility/FeedStylesheets/rss.xsl, other sections are made in ColdFusion.