Blackboard集成了一个最佳实践的开源安全库开放Web应用程序项目(OWASP)企业安全API (ESAPI).该安全库默认通过名为“ESAPI安全模块”的构建块安装在Blackboard Learn上,是系统操作所乐动体育app网页下载必需的。Blackboard强烈建议所有Building Block开发人员利用这个基于OWASP的新的安全APIJava ESAPI而且JavaScript的ESAPI.这些Security API更改不仅包括最佳实践实现,而且还通过一致的命名法增加了使用方法的方便性。

    在以后的版本中,ESAPI安全模块构建块API是Blackboard Learn核心代码的一部分,默认情况下是可用的。乐动体育app网页下载

    作为安全编码实践的一部分,可能受用户影响的输入(无论是否受信任)应该在处理(输入验证)之前以及在显示(输出验证或转义)之前在服务器端进行验证。这有助于确保系统弹性,并防止跨站点脚本等安全问题。


    输入验证

    当从请求接收输入时,始终验证并始终验证服务器端。Blackboard实现了几个需要验证的流行用例。下面提供了一些示例。

    • blackboard.platform.security.ValidationUtility。isValidDirectoryPath
    • blackboard.platform.security.ValidationUtility。isValidGuid(字符串)
    • blackboard.platform.security.ValidationUtility。isValidEnumeratedType(Enum, String)

    输出验证/编码/逃离

    当显示任何输入时,始终确保它显示在它将被嵌入的正确上下文中:

    Java方法

    • escapeforhtml (String)
    • escapeforhtmlattribute (String)
    • escapeforjavascript (String)
    • escapeforurl (String)
    • escapeforcss (String)
    • escapeforxml(字符串)
    • escapeforxmlattribute(字符串)

    JSP的方法

    • ${bbNG:EscapeForHTML(String)}
    • ${bbNG:EscapeForJavascript(String)}
    • ${bbNG:EscapeForURL(String)}
    • ${bbNG:EscapeForCSS(String)}
    • ${bbNG:EscapeForXML(String)}
    • ${bbNG:EscapeForXMLAttribute(String)}

    JavaScript方法

    所有ESAPI for JavaScript方法都可以使用。下面是一些比较常用的方法:

    • 美元ESAPI.encoder()。规范化(字符串)
    • 美元ESAPI.encoder()。编码forhtml(字符串)
    • 美元ESAPI.encoder()。encodeForHTMLAttribute(字符串)
    • 美元ESAPI.encoder()。encodeForCSS(字符串)
    • 美元ESAPI.encoder()。编码forjavascript(字符串)
    • 美元ESAPI.encoder()。编码forurl(字符串)