Fix XSS warnings (#11620)

This commit is contained in:
Pere Miquel Brull 2023-05-18 11:21:06 +02:00 committed by GitHub
parent 271d6aab2f
commit b480e853ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 8 deletions

4
.snyk
View File

@ -6,3 +6,7 @@ exclude:
global: global:
- ingestion/examples/** - ingestion/examples/**
- ingestion/tests/** - ingestion/tests/**
- openmetadata-ui/src/main/resources/ui/cypress/**
- openmetadata-ui/src/main/resources/ui/src/pages/service/mocks/**
- openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.mock.ts
- openmetadata-service/src/test/**

View File

@ -61,7 +61,7 @@ def get_fn(blueprint: Blueprint) -> Callable:
error=f"Did not receive any JSON request to deploy", error=f"Did not receive any JSON request to deploy",
) )
ingestion_pipeline = IngestionPipeline(**json_request) ingestion_pipeline = IngestionPipeline.parse_obj(json_request)
deployer = DagDeployer(ingestion_pipeline) deployer = DagDeployer(ingestion_pipeline)
response = deployer.deploy() response = deployer.deploy()

View File

@ -15,7 +15,7 @@ import traceback
from typing import Callable, Optional from typing import Callable, Optional
import requests import requests
from flask import Blueprint from flask import Blueprint, escape
from openmetadata_managed_apis.api.response import ApiResponse from openmetadata_managed_apis.api.response import ApiResponse
from openmetadata_managed_apis.utils.logger import routes_logger from openmetadata_managed_apis.utils.logger import routes_logger
from requests.exceptions import ConnectionError from requests.exceptions import ConnectionError
@ -70,7 +70,7 @@ def get_fn(blueprint: Blueprint) -> Callable:
for ip_service in IP_SERVICES: for ip_service in IP_SERVICES:
host_ip = _get_ip_safely(ip_service) host_ip = _get_ip_safely(ip_service)
if host_ip: if host_ip:
return ApiResponse.success({"ip": host_ip}) return ApiResponse.success({"ip": escape(host_ip)})
# If we cannot fetch the IP, still return a 200 but without informing the IP. # If we cannot fetch the IP, still return a 200 but without informing the IP.
return ApiResponse.success({"ip": "unknown"}) return ApiResponse.success({"ip": "unknown"})

View File

@ -14,7 +14,7 @@ Test the connection against a source system
import traceback import traceback
from typing import Callable from typing import Callable
from flask import Blueprint, Response, request from flask import Blueprint, Response, escape, request
from openmetadata_managed_apis.api.response import ApiResponse from openmetadata_managed_apis.api.response import ApiResponse
from openmetadata_managed_apis.utils.logger import routes_logger from openmetadata_managed_apis.utils.logger import routes_logger
from openmetadata_managed_apis.workflows.ingestion.credentials_builder import ( from openmetadata_managed_apis.workflows.ingestion.credentials_builder import (
@ -73,7 +73,7 @@ def get_fn(blueprint: Blueprint) -> Callable:
return ApiResponse.success( return ApiResponse.success(
{ {
"message": f"Workflow [{automation_workflow.name}] has been triggered." "message": f"Workflow [{escape(automation_workflow.name)}] has been triggered."
} }
) )

View File

@ -15,8 +15,8 @@ from pathlib import Path
from typing import Dict from typing import Dict
from airflow import DAG, settings from airflow import DAG, settings
from airflow.jobs.scheduler_job import SchedulerJob
from airflow.models import DagModel from airflow.models import DagModel
from flask import escape
from jinja2 import Template from jinja2 import Template
from openmetadata_managed_apis.api.config import ( from openmetadata_managed_apis.api.config import (
AIRFLOW_DAGS_FOLDER, AIRFLOW_DAGS_FOLDER,
@ -94,7 +94,7 @@ class DagDeployer:
# Open the template and render # Open the template and render
raw_template = pkgutil.get_data(PLUGIN_NAME, "resources/dag_runner.j2").decode() raw_template = pkgutil.get_data(PLUGIN_NAME, "resources/dag_runner.j2").decode()
template = Template(raw_template) template = Template(raw_template, autoescape=True)
rendered_dag = template.render(dag_runner_config) rendered_dag = template.render(dag_runner_config)
@ -151,7 +151,7 @@ class DagDeployer:
scan_dags_job_background() scan_dags_job_background()
return ApiResponse.success( return ApiResponse.success(
{"message": f"Workflow [{self.dag_id}] has been created"} {"message": f"Workflow [{escape(self.dag_id)}] has been created"}
) )
def deploy(self): def deploy(self):