检测站点是否在sitecore上构建

Fil*_*ans 4 c# sitecore

我正在构建一个网页,提供有关用户网站的统计信息.
您输入您的网址并获得一堆结果.

我主要关注的是基于Sitecore cms构建的网站.
目前,我可以检测网站是否仅在'/sitecore/login'页面可用时才使用Sitecore .

为此,我使用:

var webclient = new WebClient();
var source = webclient.DownloadString(url);
Run Code Online (Sandbox Code Playgroud)

但是当管理员决定提高安全性时,他们可能无法'sitecore/login'访问随机用户.在这种情况下,我的代码显然不起作用.

有谁知道如何检测是否使用Sitecore cms更好的解决方案?
请记住,它是一个外部网站,因此无法访问sitecore后端.

(ps我不想使用第三方工具)

提前致谢!

Mar*_*idy 10

始终有一种方法可以屏蔽Sitecore正在使用中.话虽如此; 你可以看到一些东西 - 默认设置,根据我的经验,Sitecore管理员和开发人员很少改变.

饼干

SC_ANALYTICS_GLOBAL_COOKIE
SC_ANALYTICS_SESSION_COOKIE
Run Code Online (Sandbox Code Playgroud)

如果您的请求向您发送这些cookie中的任何一个,我会谨慎地假设它是Sitecore解决方案.

请求已知媒体

请求此文件应仅适用于Sitecore.但只适用于Sitecore版本7及更高版本.

/~/media/System/Template%20Thumbnails/audio.ashx
Run Code Online (Sandbox Code Playgroud)

要么

/~/media/System/Simulator%20Backgrounds/blackberry.ashx
Run Code Online (Sandbox Code Playgroud)

(最后一个应该也适用于Sitecore 6.6)

要么

/layouts/System/VisitorIdentification.aspx
Run Code Online (Sandbox Code Playgroud)

这些都不能保证有效.但是,如果你对其中任何一个产生"打击",如果它不是幕后的Sitecore解决方案,那将是一个奇怪的巧合.

  • 我不认为可以找到一个通用的解决方案.如前所述,Sitecore可以被屏蔽,HTTP头可以(并且应该被防火墙删除).这留下了尝试少数或更多不同的东西的唯一选择,如果一个回来积极 - 你有一个打击. (2认同)

jam*_*kam 5

常见的一种方法是检查是否.ashx用于媒体扩展,或者它们是否带有前缀/~/media/或者/-/media/所有这些显然都可能会根据配置设置而发生变化.这将要求您检查源代码.

您可以检查其他Sitecore文件,但是根据部署情况,这些文件可能会或可能不会在那里或至少可供公众访问.我会寻找文件/sitecore夹之外的文件,例如:

  • Default.aspx的
  • default.css
  • default.js
  • webedit.css

您需要检查文件的内容以确保它们是默认的Sitecore文件.您依赖于这些文件将从默认安装中遗留下来这一事实,但无法保证,因此可能无法告诉您.


Rob*_*Rob 5

令人惊讶的是,Sitecore有一个公共(默认情况下)可访问的版本文件.它位于/sitecore/shell/sitecore.version.xml

我注意到/经历过这个文件经常被访问,即使/sitecore受到保护.

能够访问此文件不仅可以确认该站点是基于Sitecore构建的,还可以为您提供所用版本的特定版本.