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

简介: 第九章 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


相关文章
|
5天前
|
弹性计算 Kubernetes 安全
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
29 8
|
2天前
|
弹性计算 监控 数据挖掘
事件驱动架构的优势与应用:深度解析与实战应用
【8月更文挑战第17天】事件驱动架构以其松耦合、可扩展性、异步处理、实时性和高可靠性等优势,在实时数据处理、复杂业务流程、弹性伸缩和实时通信等多个领域展现出巨大的应用潜力。通过合理应用事件驱动架构,可以构建灵活、可扩展和可维护的系统架构,满足不断变化的业务需求和技术挑战。对于开发者而言,深入理解事件驱动架构的核心概念和优势,将有助于更好地设计和实现高质量的软件系统。
|
5天前
|
存储 算法 前端开发
JVM架构与主要组件:了解Java程序的运行环境
JVM的架构设计非常精妙,它确保了Java程序的跨平台性和高效执行。通过了解JVM的各个组件,我们可以更好地理解Java程序的运行机制,这对于编写高效且稳定的Java应用程序至关重要。
19 3
|
11天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
40 6
|
16天前
|
运维 Cloud Native 云计算
云原生应用架构:从理论到实践
【8月更文挑战第3天】 在数字化转型的浪潮中,云原生技术以其弹性、可扩展和容错特性成为企业IT架构的优选。本文将通过一个简易的云原生应用实例,深入探讨如何将抽象的云原生理念转化为具体操作,并分享实现过程中的关键代码段。读者将获得构建和部署云原生应用的实用知识,同时对云原生带来的变革有更深刻的理解。
|
17天前
|
Cloud Native 持续交付 云计算
探索云原生架构:构建现代应用的基石
在数字化转型的浪潮中,企业正面临前所未有的挑战与机遇。云原生架构,作为一种新兴的应用开发范式,正日益成为企业创新和竞争力提升的关键。本文将深入探讨云原生的核心概念、优势以及实施过程中可能遇到的挑战,旨在为读者提供一份全面的云原生实践指南。
|
19天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:Kubernetes在微服务架构中的应用Python编程之旅:从基础到进阶
【7月更文挑战第31天】随着云计算技术的迅猛发展,云原生概念应运而生,它代表了一种构建和运行应用程序的全新方式。本文将通过实际代码示例,深入探讨Kubernetes这一云原生关键技术如何在微服务架构中发挥其强大的作用。我们将从容器化开始,逐步过渡到Kubernetes集群的搭建与管理,最后展示如何部署和管理一个微服务应用。
32 2
|
20天前
|
消息中间件 Kubernetes 数据库
深入理解微服务架构及其在现代后端开发中的应用
【7月更文挑战第30天】随着技术的进步和业务需求的多样化,传统的单体应用架构已逐渐不能满足快速迭代和可扩展性的需求。微服务架构作为一种新兴的软件开发架构风格,以其独特的设计理念和优势,成为解决复杂系统问题的有效途径。本文将深入探讨微服务架构的核心概念、设计原则以及在实际后端开发中的应用场景,帮助开发者更好地理解和运用微服务架构。
28 2
|
20天前
|
运维 监控 关系型数据库
阿里云Serverless高可用架构深度评测:构建稳定高效应用的全面指南
随着云计算技术的迅猛发展,Serverless计算作为一种新兴的、以事件驱动的无服务器架构,正在逐渐改变企业构建、部署和管理应用程序的方式。阿里云,作为全球领先的云服务提供商之一,提供了全面的Serverless解决方案,包括PolarDB MySQL Serverless集群和Serverless应用引擎等产品,致力于帮助用户构建高可用、高弹性、低成本的应用系统。本文将深度评测阿里云的Serverless服务,从产品功能、使用体验、部署常见问题、文档与支持的全面性等维度出发,为开发者和企业提供实用的参考。
62 0