Skip to main content

输入验证筛选器

输入验证过滤器充当第一道防线,具有可配置的规则来保护 Blackboard。从某种意义上说,它就像 Blackboard 的防火墙。它通过默认规则集来净化数据,从而确保传入的用户请求是安全的。

单个 Blackboard 实例每天可以处理许多应用程序 HTTP 请求(例如提交作业、保存作业、登录系统、注销系统等)。对于每个请求,Blackboard 负责验证处理这些请求的代码是否包含正确的值。通过规则集,输入验证过滤器概述了 Blackboard 中一系列定义明确的数据字段(例如,课程 ID 字段),并明确列出了每个字段可接受的条目的条件和模式。这些字段在默认规则集中定义。如果输入的数据与规则标准不匹配,系统将根据为“on-fail”属性设置的值对其做出反应。

默认规则集不可修改,但您可以基于默认规则集创建自定义规则集,以保护专有或第三方 Building Block。您可以查看默认规则集,以了解正在保护系统的规则。您可以查看各种黑板页面的参数、这些页面允许的值以及如果无法满足约束条件时会发生什么情况。使用自定义规则集,您可以定义将筛选器应用到系统上的哪些 Building Block,并快速解决安全问题,无需等待新版本的受影响 Building Block。

管理员面板 > 安全性 > 输入验证筛选器上找到输入验证筛选器功能。

默认规则集

Blackboard 使用默认规则集快速解决安全问题。默认规则集定义了各种 Blackboard 页面中给定路径所需的参数和数据类型的限制。它还定义了在输入不正确的值类型时,系统将如何做出反应。例如,学生正在输入课程 ID。根据规则,课程 ID 必须仅包含数字字符,但学生恶意地操纵请求以发送字母数字值或脚本。Blackboard 对此恶意输入的反应方式在规则的“on-fail”属性中定义。

转到管理员面板 > 安全 > 输入验证过滤器然后选择默认规则集。在此处,您可以:

  • 选择下载规则集 (xml) 以下载和查看默认规则集。将此规则集作为模型来创建自定义规则集。

  • 选择下载架构 (xsd) 以下载默认规则集的架构定义。这定义了创建自定义规则集所需的格式。

  • 查看默认规则集页顶部的日期。这会告知您在系统中最后一次更新默认规则集的时间。

根据以下标准开发了默认规则集中的规则。您必须根据这些标准开发自定义规则集和自定义规则,才能供系统处理。

必需和可选规则属性

18. 规则属性

必需与可选

格式

必需属性

<rule path="..." parameter="..."/>

可选(但需要)属性

<rule path="..." parameter="..." constraint="..." on-fail="..."/>

或:

<rule path="..." parameter="..." constraint-name="..." on-fail="..."/>

可选属性

<rule path="..." parameter="..." constraint="..." on-fail="..." min-version="..." max-version="..."/>

或:

<rule path="..." parameter="..." constraint-name="..." on-fail="..." min-version="..." max-version="..."/>



属性和描述

自定义规则集是可选的。您可以基于默认规则集创建自定义规则集,以便为专有或第三方 Building Block 添加保护,或利用规则优先顺序功能来覆盖默认规则集中的规则。

使用自定义规则集,您可以定义将筛选器应用到系统上的哪些 Building Block,并快速解决特定于您系统的问题,或在 Blackboard 提供解决方案之前提前解决问题。如果您决定创建自定义规则集,则它会随默认规则集一起运行。

创建自定义规则集

  1. 在“管理员面板”的安全下方,选择输入验证筛选器

  2. 选择自定义规则集

  3. 选择下载规则集 (xml) 将默认规则集保存到您的本地系统中。您可以根据需要对其进行修改,并将其用作创建自定义规则集的起点。

  4. 选择下载架构 (xsd) 保存该架构,将其用作关于如何设置自定义规则集中规则格式的指导。有关详细信息,请参阅默认规则集。

  5. 转到自定义规则集页面,然后选择上传以浏览并上传新的自定义规则集。

  6. 上传自定义规则集后,将显示三个新选项:

    1. 替换允许替换活动的自定义规则集并上传新规则集。选择此选项将会转到上传自定义规则集页面。

    2. 删除:允许您删除自定义规则集。

    3. 下载:允许您将自定义规则集保存到本地系统并继续编辑。

自定义规则集保留

  • 管理员必须维护任何自定义规则集的单独备份副本。

  • 如果删除输入验证筛选 Building Block,然后重新安装,则不会保留自定义规则集。

  • 如果更新输入验证筛选 Building Block,将保留现有自定义规则集并且其会保持活动状态。

规则优先级

规则冲突定义为两个规则,它们具有相同的路径和参数属性值。默认规则集和自定义规则集会相继运行。因此,如果某个规则在规则集之间发生冲突,则自定义规则集的规则优先级高于默认规则集。如果为同一路径属性和参数属性定义了自定义规则和默认规则,则最后声明的规则(无论“on-fail”之类的其他属性如何)将处于活动状态。

冲突非常罕见,且仅由自定义规则集引入。为避免冲突并达到您期望的系统性能,请确保自定义规则的路径和参数属性与默认规则集或自定义规则集中的其他规则不同。或者,要利用规则优先级和冲突的使用,请在自定义规则集中定义规则以覆盖默认规则集中的行为。

注意

如果定义冲突,则不会出现系统警告,因为它将使用更接近文件底部的规则。

19. 冲突情景

情景

系统操作

如果自定义规则集中的规则与自定义规则集中的规则冲突...

  • 将使用更接近文件底部的冲突规则。

  • 自定义规则集中的冲突规则(在自定义规则集中其他冲突规则之上)会被忽略。

如果自定义规则集中的规则与默认规则集中的规则冲突...

  • 使用自定义规则集中的冲突规则。

  • 默认规则集中的冲突规则会被忽略。