- 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"}
and 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"}
if you used Helm)./istioctl version --remote
client version: 1.6.0
control plane version: 1.6.0
data plane version: 1.6.0 (57 proxies)
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