URL检查

这个 URL External Access Checks 页面控制对用户提供的URL执行的检查,Geoserver将使用这些URL访问远程资源。

目前,对以下功能执行检查:

  • 带有远程SLD样式表的WMS GetMap、GetFeatureInfo和GetLegendGraphic请求 (sld 参数)

  • 样式引用的远程图标(始终允许访问数据目录中的图标)

  • 要素描述模式下的WMS GetMap和GetFeatureInfo请求 (REMOTE_OWSREMOTE_OWS_TYPE 参数)

  • WPS远程输入,作为GET或POST请求

有关将来添加的任何其他远程服务访问检查,请检查此页。

配置URL检查

导航到 Data > URL Checks 用于管理和配置URL检查的页面。

../_images/urlchecks.png

URL检查表

使用 Enable/Disable URL Checks 启用此安全功能:

  • URL checks are enabled 复选框处于启用状态时,将执行URL检查以限制Geoserver对远程资源的访问,如上所述。

    建议启用URL检查,以限制用于跨站点脚本攻击的正常Open Web服务协议交互。

  • 禁用复选框后, URL checks are NOT enabled ,Geoserver可以不受限制地访问远程资源。

    禁用URL检查不是安全或建议的设置。

添加基于正则表达式的检查

用于添加和删除URL检查的按钮位于 URL Check list 桌子。

要添加URL检查,请按 Add new URL check 纽扣。系统将提示您输入URL检查详细信息(如中所述 编辑URL检查 (见下文)。

删除基于正则表达式的检查

若要删除URL检查,请选中 URL Check list 桌子。按下按钮 Remove selected URL checks 按钮以删除。系统将要求您确认或取消删除。压榨 OK 删除选定的URL检查。

编辑URL检查

可以配置正则表达式URL检查,每个检查具有以下参数:

描述

名字

支票的名称,用于在列表中标识它。

描述

支票的说明,以备日后参考。

正则表达式

用于匹配允许的URL的正则表达式

启用

用于启用或禁用该检查的复选框

../_images/urlchecks-edit.png

配置正则表达式URL检查

测试URL检查

这个 Test URL Checks with external URL 表单允许检查URL,报告是否允许访问。

测试URL检查表:

描述

要检查的URL

提供外部资源的URL以检查是否允许访问

按下按钮 Test URL 按钮来执行检查。如果至少有一个URL检查与该URL匹配,则将允许该URL检查,并且测试将指示允许访问的URL检查。否则,它将被拒绝,并且测试将指示没有匹配的URL检查。

../_images/urlchecks-test.png

使用外部URL进行测试URL检查

RegEx模式示例

最常见的模式允许匹配给定的主机名,以允许来自远程服务器的外部图形。此模式使用 ^ 为了标记开始,主机URL, .* 来匹配任何东西,并且 $ 结束-如以下模式中所示:

^https://styles\.server\.net/.*$

https://styles.server.net/logo.png

要允许来自远程服务器上特定目录的外部图形:

^https://styles\.server\.net/icons/.*$

https://styles.server.net/icons/forest.png

使用SVG参数处理外部图形时,请使用 (\?.*)?$ 有选择地允许以下任何查询参数 ?

^https://styles\.server\.net/icons/.*(\?.*)?$

https://styles.server.net/icons/forest.png
https://styles.server.net/icons/forest.svg?color=darkgreen

从API获取内容时 \?.* (因为不需要支持相对路径)。作为一个例子 /geoserver/ows\? 用于访问Geoserver Open Web服务API:

^https?://localhost:8080/geoserver/ows\?.*$

http://localhost:8080/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities

允许Geoserver虚拟Web服务 (\w+/)? 用于可选的工作区名称:

^https?://localhost:8080/geoserver/(\w+/)?ows\?.*$

http://localhost:8080/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities
http://localhost:8080/geoserver/ne/ows?service=WMS&version=1.3.0&request=GetCapabilities

限制为Web要素服务的步骤 ?.*SERVICE=WFS.* 用于限制查询参数:

^https?://localhost:8080/geoserver/(\w+/)?ows\?.*SERVICE=WFS.*?$

http://localhost:8080/geoserver/tiger/ows?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=giant_polygon

到允许WMS REMOTE_OWS 对外部Geoserver WFS服务的数据访问:

^https://mapping\.server\.net/geoserver/(\w+/)?ows\?.*SERVICE=WFS.*$

https://mapping.server.net/geoserver/ows?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=roads

要允许外部图形访问远程Geoserver图标:

^https://mapping\.server\.net/geoserver/styles/.*(\?.*)?$

https://mapping.server.net/geoserver/styles/grass_fill.png
https://mapping.server.net/geoserver/styles/ne/airport.svg?fill=gray

还可以检查文件路径:

^/var/opt/geoserver/data/.*$

/var/opt/geoserver/data/example.tiff

^D:\\\\data\\.*$

D:\\data\example.tiff

备注

正在检查的位置是标准化的,因此更容易编写RegEx模式:

  • URL路径已归一化以删除任何多余的 \.\.. 路径已被删除

  • 文件URL已标准化,以便 file:/ 表示为 file:///

  • 文件路径已使用以下工具进行标准化 / 在Linux和 \\ 在Windows上

备注

网站可以帮助定义有效的Java正则表达式模式。这些工具可用于解释、解释和测试正则表达式。例如:

Previous: 休息安全