中断链接报告
此报告提供有关站点上中断链接的信息。
它为什么重要
它对于访问整个站点以确保实施全面的安全测试至关重要。如果您注意到您的 Security Issues 报告没有显示任何安全问题,可能是因为有断开的链接阻止了扫描引擎到达整个站点。
如何触发中断链接
有许多原因可能会将链接报告为中断:- 目标已移动或删除。
- 源文档已移动,致使 URL 无效。
- URL 格式不佳(包括不必要的空格)。
- HTML 使用不正确的语法,如无序的起始标记、结尾标记,以及浏览器中可能不会出现的编码错误。
- 服务器配置已更改。
不同类型的中断链接错误
该表列出了报告中可能出现的不同中断链接错误:
术语 | 定义 |
---|---|
找不到文件 | 当 URL 指向服务器上不存在的文件时发生。这些错误通常是由于 URL 中的打字错误或者目标文件已被删除或重命名所导致 |
其他 | 无法打开文件,因为设备未就绪。 未授权的用户不能访问文档。 服务器理解请求,但是拒绝执行。 |
无法连接 | 当目标服务器没有响应来自浏览器的请求时发生。这些错误通常是由于服务器发生故障或过于繁忙。 |
找不到主机 | 当 URL 指向使用主机名/域名(标准域名)无法找到的服务器时发生。此类型的错误通常表明 DNS 系统或与 DNS 系统的连接存在问题,或者表明一般的因特网连接问题。 |
超时 | 当现有服务器响应但没有足够快速地返回数据因而服务器超时时发生。 |
针对中断链接的修复和最佳做法
- 验证 URL 的扩展名。
- 验证拼写。即使最小的打字错误也会中断链接。
- 检查是否有重命名的文件名。
- 检查在 URL 中没有多余的跳格、换行符或标点符号。
- 确保使用的是相对链接而不是绝对链接。
- 访问外部链接的主页并通过其搜索功能搜索链接。
在特定条件下,当链接看起来工作正常时,可能会将其报告为中断。本节描述一些此类条件并提供对其进行修订的建议。
- 链接包含换行符:如果链接包含换行符,则会将此换行符正确理解为空格并将链接报告为中断。例如,
<p>This is a test line to show a <a href="testbro<br />kenlink.htm">Broken Link</a></p>
建议:尽管一些浏览器趋向于忽略换行符并使链接有效,但是应将换行符移除以符合 HTML 标准。
- 代理设置不正确:为使其可靠地工作,断开的链接报告会依赖于正确设置的代理信息。错误的代理设置可能会造成即使外部链接工作正常,也会将其报告为中断。
- JavaScript™ 中断开的 URL:如果对外部 JavaScript™ 文件的引用包含诸如
<SCRIPT SRC= "globaljava.js"...>
的相对路径,那么此外部文件中的 URL 可能会在没有缺陷时被报告为断开。当解析文件而不是执行文件时,便会出现此类型的中断链接。此文件中的相对 URL 将被理解为相对于 JavaScript™ 文件,而不是相对于包含了 JavaScript™ 文件的 URL。脚本编写人员无法总是确定将会引用文件的位置。 - 扫描未发现断开的链接:一些中断链接可以重定向到“定制错误”页面。此做法通常由在遇到中断链接时想要向用户显示个性化说明的 Web 站点使用。由于此定制错误页面是实际的有效页面,因此在请求此页面时,扫描不会收到 404(中断)HTTP 返回码。而是会获取 200(正常)返回码,因为扫描认为页面完好。
- “其他”类别中出现外部链接:外部链接会出现在此类别中,因为认证凭证未被接受。如果是使用定制规则检查第三方站点,并且所检查的其中一个页面要求认证,则会使用在“连接”页面上输入的认证凭证。如果这些认证凭证对于所扫描的第三方页面不可接受,则此页面会显示为中断的链接。
- HTML DOM 作为上下文出现:HTML DOM(文档对象模型)是一种浏览器界面,通过它可以访问会在 IE 中加载的页面,并且仅当页面上执行了 JavaScript™ 时才会使用。因此,如果链接的“上下文”为 HTML DOM,则它是使用 JavaScript™ 执行所找到的链接。
- JavaScript™ 作为上下文出现:由于需要将 JavaScript™ 设置为“执行 Javascript 以发现 URL 和动态内容”(通常情况)或“解析 Javascript 以发现 URL”(少数情况),因此会发生误报。
- 大量超时:如果报告表明大量链接“超时”并且这些看起来是假的,请尝试调整内容扫描作业设置。
您应了解的有关此报告的信息
- 如果是从内部域中的页面重定向外部域 URL,则这些外部域 URL 将在报告中出现。它重定向到的页面将会进行解析并在报告中被视为“页面”。
- 如果您的站点使用框架,那么 HCL® 软件服务人员或您的产品管理员可以提供 PageComponent 数据集,以便您可以使用这些数据集来对报告结果进行分组:
- PageComponent:有助于识别构成 Web 页面的文件,如 gif、js、html 或框架文件。
- PageComponent 标识:扫描期间指定的唯一标识,用于识别页面的这一特定组件。打开“关于该 PageComponent”报告,以查看有关该特定 PageComponent 的更多详细信息。