Istio - Corspolicyalloworigin Из Virtualservice Не Блокирует Запросы На Скручивание Из Разных Источников

  • Автор темы Александра15
  • Обновлено
  • 22, Oct 2024
  • #1

Описание ошибки 1.2.2/1.2.10/1.4.0/1.5.1/1.5.2/1.5.3/1.5.4/1.6.0 -allowOrigins не блокирует запросы на завивание из разных источников. Сканирование уязвимостей системы безопасности обнаружило это. Когда я скручиваю, если домен соответствует, я получаю его как доступ-контроль-разрешить-происхождение: https://testthat.com, но если не совпадает, я получаю access-control-allow-origin: *. Я ожидаю, что запрос будет заблокирован.

Ожидаемое поведение Указанный источник, если он не установлен в *, должен блокировать исключительно все остальное.

Действия по воспроизведению ошибки Создайте виртуальную службу с параметром CORSallowOrigins, равным https://testthat.com, смоделируйте REST API для стоящей за ним службы, предполагая другой ORIGIN, и запрос вернет 200.

В версии 1.6.0 я использую виртуальный сервис, указанный ниже, для внесения в белый список только одного домена, и с помощью следующего завитка я получаю 200 на другом, почему он не заблокирован: Curl -X OPTIONS 'https://api2.qa.testthat.com/v1/test/something' -H "Происхождение: https://testthat.com"-в

cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Версия (включая вывод

helm version
Client: &version.Version{SemVer:"v2.13.0", GitCommit:"79d07943b03aea2b76c12644b4b54733bc5958d6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.0", GitCommit:"79d07943b03aea2b76c12644b4b54733bc5958d6", GitTreeState:"clean"}
и
 kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:36:19Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
and
./istioctl version --remote
client version: 1.6.0
control plane version: 1.6.0
data plane version: 1.6.0 (57 proxies)
if you used Helm)

helm version
kubectl version
istioctl version --remote
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:

labels:

app.kubernetes.io/instance: qa-bom

app.kubernetes.io/managed-by: Tiller

app.kubernetes.io/name: service-test

helm.sh/chart: service-test-0.1.0-release-2-7-0-4-227fd9a

name: service-test

namespace: qa
spec:

gateways:

- api-gateway

hosts:

- service-test

- api2.qa.testthat.com

http:

- corsPolicy:

allowHeaders:

- Authorization

- Content-Type

allowMethods:

- POST

- GET

- PUT

- PATCH

- DELETE

allowOrigins:

- exact: https://testthat.com

match:

- gateways:

- api-gateway

method:

regex: GET|OPTIONS

uri:

regex: /v1/test/.*

route:

- destination:

host: service-test

port:

number: 8080

subset: active

weight: 100

Как был установлен Istio? https://istio.io/docs/setup/install/standalone-operator/'

Среда, в которой была обнаружена ошибка (поставщик облака, ОС и т. д.) Локальная ОС Ubuntu

#istio

Александра15


Рег
10 Apr, 2011

Тем
79

Постов
189

Баллов
614
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно