部门最近新上了一个WEB系统,用于考核编辑人员的工作,记录工作绩效。在部署的时候初期考虑安全因素放在内网环境中,但是在实际准备过程中发现,如果放在内网,需要设置端口映射等操作,有可能影响内网服务器正在运行的其他服务,而且一旦不在内网环境内就不好去查看系统的一些数据,实际部署到外网环境没什么特别大的安全隐患,系统是由关系很好的第三个公司提供,他们几年的经验之作,仅仅是做为内部使用,在此表示再一次的感谢!!!
但是出于安全考虑,还是决定在外网环境(阿里云)下一个基本的设置。为了方便工作,考核系统链接放到了部门博客页脚,虽然链接做了nofollow处理,但是仍然有可能被蜘蛛爬取甚至索引,甚至放出快照,从而一不小心就被更多人发现,成为攻击的目标,所以想到配置服务器,让正常的用户可以使用该系统,当是蜘蛛来的时候则返回403,禁止蜘蛛爬取。测试结果如下:
具体配置如下:
#判断UA,如果UA不包含spider或者bot(不区分大小写),表示UA为正常用户 # 设置变量 is_human 值为 yes if ($http_user_agent !~* "spider|bot") { set $is_human 'yes'; } #当有任意请求的时候,该UA不是正常用户,则表示应该是蜘蛛类程序,则返回403 location / { if ($is_human != 'yes') { return 403; } }
当然,还可以再完善点,给系统添加了robots.txt文件
User-agent: * Disallow: /
这样,基本蜘蛛就是知道有系统的存在也无法抓取到任何内容。
当然前面的规则可以再优化合并一下:
#对于网站文件有任意匹配 location / { # 首先判断访问UA,如果UA包含spider或者bot,可以认为不是正常用户,是蜘蛛类程序 if ($http_user_agent ~* "spider|bot") { # 就禁止蜘蛛反问页面的任意文件 return 403; } }