市场上CMS程序大多可以通过robots.txt文件去判断,比如dedecms:
User-agent: * Disallow: /plus/ad_js.php Disallow: /plus/advancedsearch.php Disallow: /plus/car.php Disallow: /plus/carbuyaction.php Disallow: /plus/shops_buyaction.php Disallow: /plus/erraddsave.php Disallow: /plus/posttocar.php Disallow: /plus/disdls.php Disallow: /plus/feedback_js.php Disallow: /plus/mytag_js.php Disallow: /plus/rss.php Disallow: /plus/search.php Disallow: /plus/recommend.php Disallow: /plus/stow.php Disallow: /plus/count.php Disallow: /include Disallow: /templets
从上面的协议内容可以看到这个网站一定是dedecms内核的。然而,针对dedecms系统的漏洞,网络上暴露的比较多,如果从一开始就让人无法识别是否是dedecms后台,那么一定是极大的降低了网站被黑的危险。
下面的代码起到的作用是,当非蜘蛛访问robots.txt的时候,返回404页面,当是蜘蛛访问的时候则返回正常的robots.txt内容。
#如果没有在UA中匹配到蜘蛛关键词,那么设置 deny_robots变量为yes if ($http_user_agent !~* "spider|bot") { set $deny_robots 'yes'; } #如果请求的是robots.txt,并且匹配到了蜘蛛,则返回403 location = /robots.txt { if ($deny_robots = 'yes') { return 404; } }