美文网首页收藏
第九章 CSP 架构 - CSP 应用程序设置

第九章 CSP 架构 - CSP 应用程序设置

作者: Cache技术分享 | 来源:发表于2022-10-08 08:55 被阅读0次

    第九章 CSP 架构 - CSP 应用程序设置

    CSP 应用程序设置

    CSP 服务器接收到传入的 HTTP 请求时,它使用本地 CSP 应用程序设置来确定如何处理请求。本节介绍 如何使用 CSP 应用程序设置处理 CSP 应用程序请求。

    启用对 %CSP 页面的应用程序访问

    以下规则管理对页面和类的访问:

    1. 默认情况下,允许用户应用程序访问以下页面:
    • 允许 /csp/sys/ 应用程序及其所有子应用程序的页面
    • 允许使用 isc/studio/templates//isc/studio/usertemplates/ 应用程序的页面
    1. 默认情况下,允许用户应用程序访问所有非 % 类
    2. 用户应用程序还可以访问以下类:
    • %CSP.Broker, %CSP.StreamServer, %CSP.Login, %CSP.PasswordChange, %CSP.PageLookup 被允许
    • %ZEN.SVGComponent.svgPage%ZEN.Dialog.* 是允许的,有以下附加条件
      • 不允许所有其他 %ZEN.*
      • 允许所有其他 %Z*
    • 允许所有 %z*

    除了检查 CSP 应用程序中的设置外,还会检查允许的类。可以通过导航到管理门户上的系统管理 > 安全 > 应用程序 > Web 应用程序来查看和更改应用程序设置。因此,类引用必须通过两组测试才能被允许。

    要允许访问其他类,请在 %SYS 命名空间中配置Global ^SYS("Security","CSP","category") ,其中 categoryAllowClassAllowPrefixAllowPercent。以下部分描述了这些选项

    重要提示:首先应用默认规则,然后按列出的顺序应用类别来完成检查。此外,每个关键字都可以被多次调用。这意味着可以使整个包可访问,然后限制对该包中的一个类的访问。

    Background Information on the ^SYS Global

    ^sys global 名称空间中包含配置信息,从查看此全局的相关部分的当前内容开始会很有帮助。为此,请打开终端并切换到%sys命名空间。然后输入以下命令:

    zw ^SYS("Security", "CSP")
    

    然后,系统为每个节点显示一行,显示其当前值。例如:

    %SYS>zw ^SYS("Security", "CSP")
    ^SYS("Security","CSP")=3
    ^SYS("Security","CSP","AllowClass","/api/atelier/","%Api.Atelier")=1
    ^SYS("Security","CSP","AllowClass","/api/deepsee/","%Api.DeepSee")=1
    ^SYS("Security","CSP","AllowClass","/api/document/","%Api.Document")=1
    ^SYS("Security","CSP","AllowClass","/csp/samples/","%CSP.UI.Portal.About")=1
    ^SYS("Security","CSP","AllowClass","/csp/samples/","%SOAP.WebServiceInfo")=1
    ^SYS("Security","CSP","AllowClass","/csp/samples/","%SOAP.WebServiceInvoke")=1
    ^SYS("Security","CSP","AllowPrefix","/csp/samples/","%DeepSee.")=1
    

    Category: AllowClass

    如果应用程序依赖于调用特定的类,请使用AllowClass选项使该类可用。

    重要提示:如果应用程序依赖于调用任何类,而不是“启用对%CSP页的应用程序访问”部分开头列出的类,则使用它可能是不安全的。建议确定是否需要调用此类,并为部署执行风险评估,以便您了解使类可用的含义。

    要使给定的Web应用程序能够调用特定类,请在%sys命名空间中使用以下命令:

    Set ^SYS("Security", "CSP", "AllowClass", "web-app-name", "package.class") = value
    

    其中

    • Web-app-nameWeb应用程序的名称,后跟一个尾随斜杠。

    要使所有Web应用程序都能使用给定的类或包,请将web-app-name指定为0;在这种情况下,您可以省略括起来的引号。

    • Package.class是类的完全限定名。如果省略类,则允许指定包中的所有类。
    • 值为10

    如果将其指定为1,则Web应用程序可以调用此类(或包)。

    如果将其指定为0,则此Web应用程序无法调用此类(或包)。

    例如,要使/csp/webapp应用程序能够使用类%User.Page,可以使用以下命令:

    Set ^SYS("Security", "CSP", "AllowClass", "/csp/webapps/", "%User.Page") = 1
    

    或者,要使所有Web应用程序都能使用%User.Page,可以使用以下命令:

    Set ^SYS("Security", "CSP", "AllowClass", 0, "%User.Page") = 1 
    

    再举一个例子,要使/csp/myapp应用程序能够使用%USER程序包中除%user.Other类以外的所有类,可以使用以下两个命令:

    Set ^SYS("Security", "CSP", "AllowClass", "/csp/myapp/", "%User") = 1
    Set ^SYS("Security", "CSP", "AllowClass", "/csp/myapp/", "%User.Other") = 0
    

    相关文章

      网友评论

        本文标题:第九章 CSP 架构 - CSP 应用程序设置

        本文链接:https://www.haomeiwen.com/subject/xhviartx.html