先给一个判断原则:拦截提示里的同一句“该网页含恶意代码”,背后可能是五种完全不同的事,而它们里只有一种需要你不访问这个网站。分清楚靠的不是直觉,而是下面五个步骤。
一、先看它拦的是哪一层
| 提示位置 | 拦的是什么 | 可信度 |
|---|---|---|
| 地址栏变红或者整页屏蔽 | 域名在恶意名单里 | 高,不要继续 |
| 弹窗说检测到恶意脚本 | 页面里的行为被判定 | 中,需要看具体域名 |
| 下载时拦一个文件 | 文件本体 | 高,但要分类型 |
| 证书错误与域名不匹配 | 中间人或者 DNS 问题 | 高,但原因在本机或者网络 |
| 打开正常网站反复弹窗 | 很可能是本机被注入 | 当真,但从自己身上查 |
第二行与最后一行是本文要重点处理的两类,因为它们的处理方向相反。
二、把提示里的具体信息读出来
不要只看大字标题。把三个具体字段记下来:拦截类型(网址、脚本、还是下载)、触发的域名、规则或威胁名。三者齐全才能判断。
很多弹窗会把这三项藏在详情里,展开它。如果展开后什么都没有、只有一个立即清理按钮,那它就不是安全软件的拦截提示,而是广告弹窗,直接关掉。
三、确认触发的是主站还是第三方脚本
这是区分网站真的有问题与小站常见状况的关键一步。打开开发者工具的 Network 面板重新加载页面,看被拦的那个域名:
- 如果它和主站同一个注册域名,比如都在 example.com 下,当真。主站自己被注入恶意代码是完全不同的事件等级。
- 如果它属于广告网络、统计工具、或者一堆看不懂的小公司域名,那么它拦得对,但跟你本来要找的内容无关。换一个入口进主站就行。
- 如果它是你自己机器上的某个本地端口,那这个提示实际在告诉你本机有东西在注入网页。
实际上一半以上的网页恶意代码提示属于第二条。它们的真实含义是这个页面加载了一个被判定可疑的第三方脚本,而不是这个网站是钓鱼站。
四、拿域名去交叉验证
拿具体域名去多引擎网站查网址,而不是查文件。看两件事:报的那几家说什么,以及这个域名的注册信息是不是与站点声称的身份一致。
后面这一项能发现一类常见情况:山寨站。它们与真站只差一两个字母,内容靠拉取生成。多引擎不报、但域名注册信息与站点声称不一致,这类站点不用等安全软件报,本身就是不能输入的。
五、换网络验证,把本机排除掉
如果上述四步都说不通,而被拦的是一个你一定需要访问的正规站点,那重点就不在网站了。按这个顺序查本机。
先看 DNS 服务器
Get-DnsClientServerAddress -AddressFamily IPv4 |
Where-Object {$_.ServerAddresses} |
Select-Object InterfaceAlias, ServerAddresses
如果里面出现你没配过的地址,要么路由器被改了,要么本机有东西改过网络配置。此时去路由器管理页面看广域网侧与局域网侧的 DNS,两边不一致就是路由器问题。
再看 hosts
$h = C:\Windows\System32\drivers\etc\hosts
Get-Content $h | Select-String -Pattern '^[^#]'
有指向 127.0.0.1 或者陌生 IP 的行,就是它。很多上网优化工具会往这里写东西,结果造成某类网站反复报异常。
最后看代理与根证书
netsh winhttp show proxy
Get-ChildItem Cert:\CurrentUser\Root |
Where-Object {$_.Issuer -notlike '*Microsoft*'} |
Select-Object Subject, Issuer, NotAfter
受信任的根证书存储里出现非微软、且你自己没有主动装过的项,基本就能解释为什么所有加密站点都报证书异常。这类东西常见于装过抓包工具、某些上网加速软件、或者公司发的电脑。
分情况处理
| 判断结果 | 处理 |
|---|---|
| 陌生站点被拦 | 不访问,不要点继续 |
| 正规站点被拦,触发的是第三方脚本 | 换入口进主站,不必处理 |
| 正规站点被拦,且换网络后正常 | 查本机 DNS、hosts、代理、证书 |
| 所有加密站点都报异常 | 根证书或者代理问题,先处理它 |
| 下载文件被拦 | 参考站内取回与报备流程那篇 |
两个不做:不要为了看一眼而点继续访问,很多提示确实对应真实挂马;不要把整个域名加入白名单,尤其不要把银行、支付、邮箱类域名加白。
最后一句
这个提示最难的地方在于它可能是一个准确的安全事件,也可能是本机的一个网络配置问题在冒充安全事件。区别方法很简单:正规站点被拦,先怀疑自己机器;陌生站点被拦,先当真。两个方向不要弄反。