安全 · 2026年11月

网站安全水平:Smart Audit 884 次检查的结果

Smart Audit 对 884 个企业网站做了被动检查。安全平均分为满分100分中19分,每五个网站就有一个对外暴露内部文件:用户列表、Git 目录、含密码的文件,甚至数据库副本。我们不讲行话,直接梳理这些数字:它们对站长意味着什么风险,整改又该从哪里开始。

网站安全水平:Smart Audit 884 次检查的结果
要点
  • 我们检查了什么 — 通过 Smart Audit 检查了 884 个企业网站:被动检查,只访问公开页面,不改动任何内容。安全平均分为满分100分中19分。
  • 发现了什么 — 每五个网站(19%)就有一个暴露了内部文件:用户列表、Git 目录、.env 文件,甚至数据库副本。10 个网站中有 9 个没有内容安全策略(CSP)。
  • 该怎么做 — 先关闭公开的内部文件并更新系统,再处理安全响应头、HTTPS 和表单。您可以免费检查自己的网站,只需三分钟。

网站能正常打开,并不等于它是安全的。站长看到首页、下单表单和商品目录,就以为一切正常。但网站上发生的事情,有一部分只有从外部、站在检查者的角度才能看到。

我们推出了 Smart Audit 服务,它看待他人网站的方式正是如此:被动检查,只访问公开页面。它不会改动任何内容,不会猜解密码,也不会深入网站内部。撰写本文时,我们已拿到 884 个不重复的企业网站的结果——每个网站取最近一次成功的检查。我们没有挑选“成绩好”或“成绩差”的网站:样本里既有网店,也有企业官网、媒体网站和大型机构的网站。文中不点名——我们关注的是整体情况,而不是某个具体网址。

下面讲我们看到了什么,这对站长意味着什么风险,以及该从哪里开始整改。

整体情况:满分100分中仅22分

全部 884 个网站的平均综合得分为 满分100分中22分。分项来看:安全 19 分,速度 18 分,搜索可见度 17 分。

  • 480 个网站(54%)得分不足 20 分(满分100分);
  • 286 个(32%)——20 至 39 分;
  • 96 个(11%)——40 至 59 分;
  • 只有 22 个网站(2.5%)达到 60 分及以上。

就安全得分而言,情况是这样的:466 个网站(53%)低于 10 分,652 个(74%)低于 30 分,只有 75 个网站(8.5%)达到 60 分及以上。

先说明一点,以免这些数字被误读。“满分100分中22分”并不表示网站有 22% 的安全性,更不表示网站已被攻破。它衡量的是网站与基础检查项之间的差距:网站是否启用了早已被视为标配的那些防护。大部分失分都出在能快速、低成本修复的地方。正因如此,这些数字值得认真对待。

第一层:门上没有插销

服务器每次把页面发给浏览器时,都会附带一些“说明”:这个页面允许做什么,不允许做什么。这就是所谓的安全响应头。它们不能让网站固若金汤,但当别处出现漏洞时,能够遏制损失。而在这方面,缺失几乎是普遍现象:

  • 90% 的网站没有内容安全策略(CSP)。它规定浏览器可以在页面上执行哪些脚本。没有它,任何被植入的代码都能与“自家”代码平起平坐地运行。结算页面上的“撇取器”(skimmer)就是这样出现的——这类脚本会悄悄复制银行卡数据。对网店(样本中有 130 个)来说,这是缺失后代价最高的一道“插销”。
  • 93% 的网站没有权限策略(Permissions-Policy)。它限制嵌入网站的小组件可以向访客索取什么:摄像头、麦克风、地理位置。
  • 88% 的网站没有来源策略(Referrer-Policy)。没有它,您页面的完整网址——连同其中的内部订单号或链接里的令牌——会被发送给第三方统计和广告服务。
  • 73% 的网站没有防止被嵌入他人框架的保护。攻击者可以把您的网站放进自己页面上的透明框架里,诱使用户点击一个“按钮”,而这个按钮实际上位于您的网站上。这种手法称为点击劫持。
  • 71% 的网站没有禁止“猜测”文件类型的设置(nosniff)。
  • 62% 的网站没有启用 HSTS。没有它,用户第一次访问时可能走未加密的通道——在公共 Wi-Fi 网络中,这就给了别人替换页面的机会。

说句实话:缺少某个响应头,并不等于网站被攻破了。它只是少了一层防护。但这只需要在服务器设置里改几行就能补上,所以缺失几乎总是说明同一件事——从来没有人做过安全方面的设置。

第二层:摆在明处的东西

这一部分更严重。在 884 个网站中,有 172 个(19%)——几乎每五个就有一个——从外部就能访问到本不该公开的内部地址。有些网站同时存在好几处这样的问题。按类型分布如下:

  • WordPress 账户列表——103 个网站(12%)。标准地址会直接给出用户的登录名,包括管理员。攻击者的工作已经完成了一半:登录名已知,剩下的只是猜密码。
  • Git 内部目录——45 个网站(5%)。可以由它还原出网站的源代码,而修改历史里常常留有当年“临时”写进代码的密码和密钥。
  • phpinfo 页面——43 个网站(5%)。它会显示 PHP 版本、模块、服务器上的路径和环境变量。对攻击者来说,这就是一张现成的地图。
  • 服务器状态内部页面——34 个网站(4%)。可以看到访客当前正在打开哪些地址,以及来自哪些 IP。
  • .env 配置文件——33 个网站(4%)。这类文件里通常存放着数据库密码、邮箱密钥和支付服务密钥。
  • 数据库副本——28 个网站(3%)。有人“就放一会儿”,结果把文件留在了网站根目录:客户、订单、电话、地址,全在里面。

需要明白的是,这里不需要攻破任何东西,只要在浏览器里打开那个地址就行了。Smart Audit 不会读取这些文件的内容:它只记录该地址上有响应,内容既不读取也不保存。但我们不做的事,任何其他人都可能去做——自动扫描程序在整个互联网上不分昼夜地逐个尝试这类地址。

第三层:已经过时的软件

在被检查的网站中,使用 WordPress 的最多,有 222 个(25%),其次是 OpenCart,有 88 个(10%)。其余的网站未能识别出平台,或者是“定制开发”的。

154 个网站(17%)自己“报出”了系统版本。这些信息可以在页面的内部标记中看到。它们本身并无害处——有害的是它们与旧版本同时出现。在暴露了 WordPress 版本的网站中,有 22 个运行在 4 和 5 版本分支上,这些版本是多年前发布的。对于这样的版本,指望有人来修补新发现的漏洞是不现实的。

另一个话题是服务器本身的版本。247 个网站(28%)的响应头会直接给出服务器软件的确切版本。攻击者无需猜测:他看到版本后,立刻就能套用针对该版本的已知手法。这一点有多重要,可以看 PHP 的严重漏洞这个例子:那里唯一的防护就是及时更新。至于另一面——没有准备就贸然更新会出什么问题——我们在插件自动更新事故分析中讲过。

第四层:表单与连接——客户数据进入网站的地方

客户正是通过表单把姓名、电话、地址,有时还有支付信息交给您。所以表单的构造方式至关重要。我们发现:

  • 489 个网站(55%)——表单没有防请求伪造保护(CSRF)。也就是说,别人的页面可以让您的访客或管理员的浏览器以其本人的名义提交表单,而不必征求他的意见。
  • 543 个(61%)——表单收集个人数据,却没有取得处理数据的同意。这不仅关乎安全,还涉及是否遵守个人数据保护方面的法律。
  • 532 个(60%)——表单没有防机器人保护。后果谁都熟悉:只要见过邮箱被“咨询单”形式的垃圾信息塞满,就明白是怎么回事。
  • 76 个网站(9%)——表单把个人数据放在页面网址里传递(GET 方法)。电话和姓名会留在浏览器历史、服务器日志里,并随网址一起流入第三方服务。
  • 321 个(36%)——cookie 没有防护标记。它们更容易被截获,或被脚本读取。

此外还有几项本应人人早已做到的基础事项:35 个网站(4%)完全没有加密(浏览器会对这些网站显示“不安全”的警告),43 个网站的证书即将到期,另有 36 个网站在受保护的页面中通过不安全的通道加载了部分内容——因此加密并未完全生效。

这对站长意味着什么风险

撇开术语,对业务的风险其实只有几条。

  1. 客户数据泄露。公开的数据库副本或配置文件不是什么“技术小事”,而是不用攻破任何东西就能拿走您客户名单的机会。接下来就是声誉受损,以及对个人数据保管所要承担的责任。
  2. 您的网站上出现别人的代码。没来得及安装的更新,再加上没有 CSP——页面上就会冒出赌场广告、跳转到第三方网站,或者支付页面上的撇取器。您很可能是从客户那里,而不是自己先发现这件事的。
  3. 被标记为“危险网站”,搜索排名下滑。浏览器和搜索引擎不会拿访客冒险。被攻破的网站在搜索结果中可能一连几周掉出前列,而恢复所需的时间,比失去它的时间更长。
  4. 停摆与恢复成本。被攻破后的恢复,费用通常比当初做预防要高出好几倍。而网站瘫痪期间,没有订单。
  5. 失去合作伙伴的信任。越来越多的大客户和招投标要求您说明安全状况。回答“不清楚”,是加不了分的。

从哪里开始:行之有效的顺序

  1. 关闭公开的内部文件。这是代价最高的漏洞,却也是修复最快的:通常一小时的工作就够了。含有密码的文件要撤下,之后还要更换这些密码,因为不能假定它们没有泄露。
  2. 更新系统和插件,并从服务器响应中去掉确切的版本号。更新要在网站的副本上进行,而不是在线上网站上盲目操作。
  3. 添加安全响应头。先从 HSTS、防嵌入保护、nosniff 和 Referrer-Policy 开始——它们几乎从不会弄坏什么。CSP 要逐步引入,先用观察模式。
  4. 把 HTTPS 整理好:证书自动续期、从 http 重定向、不加载不安全的内容。
  5. 检查表单:防请求伪造的令牌、防机器人保护、仅通过 POST 方法传递、清晰的数据处理同意。
  6. 设置站外备份和监控。放在网站旁边的备份,网站被攻破时会跟着一起消失。而网站是否可访问,不该由客户来替您检查。

我们如何提供帮助

Smart Audit 用“按轻重缓急”的语言回答“到底哪里不对”这个问题:报告把发现的问题分成两类,一类是一眼就能看到的,另一类是网站平台本身带来的。前者我们会在您现有的网站上直接修复。后者——旧版本、系统的限制、无法正常配置防护——通常通过迁移到我们的 Smart CMS 系统来解决,这个系统的底层已经内置了安全响应头、表单保护和更新机制。迁移由我们自己完成:我们会迁移页面和网址,保留搜索可见度方面的设置,并在每个环节提供协助,让您既不丢流量,也不丢订单。

不管您打算从哪里入手,都应该先看一看自己网站的真实情况。


您可以免费检查自己的网站,无需注册,只需三分钟——网址是 audit.sgt.com.ua。如果您希望我们陪您一起看结果,并直接告诉您应该先修什么——请联系我们。