我正在构建一个网页,提供有关用户网站的统计信息.
您输入您的网址并获得一堆结果.
我主要关注的是基于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解决方案,那将是一个奇怪的巧合.
常见的一种方法是检查是否.ashx用于媒体扩展,或者它们是否带有前缀/~/media/或者/-/media/所有这些显然都可能会根据配置设置而发生变化.这将要求您检查源代码.
您可以检查其他Sitecore文件,但是根据部署情况,这些文件可能会或可能不会在那里或至少可供公众访问.我会寻找文件/sitecore夹之外的文件,例如:
您需要检查文件的内容以确保它们是默认的Sitecore文件.您依赖于这些文件将从默认安装中遗留下来这一事实,但无法保证,因此可能无法告诉您.
令人惊讶的是,Sitecore有一个公共(默认情况下)可访问的版本文件.它位于/sitecore/shell/sitecore.version.xml
我注意到/经历过这个文件经常被访问,即使/sitecore受到保护.
能够访问此文件不仅可以确认该站点是基于Sitecore构建的,还可以为您提供所用版本的特定版本.