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.

14 Comments

  1. RobD said,

    October 6, 2009 at 8:38 PM

    Hey, I read a lot of blogs on a daily basis and for the most part, people lack substance but, I just wanted to make a quick comment to say GREAT blog!…..I”ll be checking in on a regularly now….Keep up the good work! 🙂

  2. udai said,

    June 24, 2010 at 10:59 AM

    excellent artical, I & my team have have gooled for this solution for couple of days coming out with no result.

    this really resloved our issue.

    thanks
    Udai

  3. Suresh Thotakura said,

    July 16, 2010 at 3:06 PM

    Excellent, very nice article. Thanks

  4. Umar said,

    June 24, 2011 at 7:49 PM

    this is great but none of the tests above can tell if this site is sharepoint site or non sharepoint .
    intact it is SharePoint site http://www.starbucks.com/

  5. Calltoshri said,

    July 14, 2011 at 11:05 AM

    good learning

  6. September 29, 2011 at 12:45 AM

    […] Kozloff, and then Googling and using some of the methods described in Nirav Sanghvi's post, How can we Identify a SharePoint Site? (including the one Jeff had initially suggested), as well as comments in response to a […]

  7. April 7, 2012 at 3:01 PM

    […] a challenge for me. one day I was searching about this challnege and I found a good blog post here. Thanks to Nirav Sanghvi. I will summerrize it […]

  8. April 23, 2014 at 3:51 AM

    What i do not realize is actually how you are no longer really much more neatly-appreciated than you might be
    right now. You’re so intelligent. You know therefore considerably
    when it comes to this subject, made me individually imagine it from numerous
    varied angles. Its like women and men don’t seem to be fascinated unless it is
    one thing to do with Woman gaga! Your personal stuffs outstanding.
    At all times care for it up!

  9. Pavan said,

    May 27, 2014 at 8:47 PM

    Hi Evry1,

    I have 1000 urls. I need to check which among them is/are share point ones.

    Is there any way to make a script and test ?

    Thanks in advance.

  10. July 24, 2014 at 1:10 PM

    Today, I went to the beach front with my kids. I
    found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed.
    There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is completely off topic but
    I had to tell someone!

  11. August 7, 2014 at 3:31 PM

    Group your light fixtures into clusters of 2 to 6; do not form a group whose total wattages
    exceed 240 Watts. For longer exposures to achieve maximum
    sharpness, we’ll need a tripod. Source directivity can be
    applied – Loudspeaker data can be applied using
    the open CLF (Common Loudspeaker Format, clfgroup.

  12. August 18, 2014 at 7:24 AM

    Great post.

  13. February 6, 2015 at 12:57 AM

    Ahaa , sa belle agréable concernant poste ici à ce blog
    , je ai lu tout cela, donc maintenant à cette époque m’a également commenter à cet endroit .

  14. Uday Gupta said,

    January 13, 2016 at 9:14 AM

    Informative and simple


Leave a comment