文章
· 十月 7, 2022 阅读大约需 4 分钟

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

第九章 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
讨论 (0)1
登录或注册以继续