Esta seção contém tudo o que fica fora do código-fonte, porém que é essencial para a segurança do produto que está sendo criado. Como os problemas tratados neste domínio não são diretamente relacionados com o código-fonte, nós o separamos dos demais domínios.
HTTP
. Isso expõe os dados a acesso não autorizado, adulteração e possível roubo.protocol
de um HTTP Listener Connector (listener-connection
) como HTTP
. Como resultado, as conexões ao HTTP Listener são inseguras.
<http:listener-config name="http_listener_config">
<http:listener-connection host="example.com" port="8080" protocol="HTTP">
...
</http:listener-connection>
</http:listener-config>
tls:context
define um conjunto de configurações de conexão TLS. Entre as configurações, o elemento tls:trust-store
especifica um arquivo que contém certificados de Autoridades de Certificação confiáveis que um cliente usa para verificar um certificado apresentado por um servidor. Por padrão, o mecanismo de tempo de execução do Mule verifica o certificado do servidor para cada conexão TLS.insecure
do elemento tls:trust-store
for true
, os certificados do servidor serão aceitos sem verificação.insecure
como true
. Como resultado, o mecanismo de tempo de execução do Mule não verifica o certificado do servidor de nenhuma conexão com o contexto de TLS chamado demoTlsContext
. Essa conexão é vulnerável a um ataque man-in-the-middle.
...
<tls:context name="demoTlsContext">
...
<tls:trust-store ... insecure="true" ... />
...
<tls:context/>
...
security
do OpenAPI e as definições servers
de destino para uma operação da API sempre substituirá as respectivas configurações globais. security
do OpenAPI e as definições servers
de destino para uma operação da API sempre substituirá as respectivas configurações globais. security
global vazia.security
global vazia pode permitir que invasores interajam com endpoints de API confidenciais e executem operações que devem ser restritas a contas de usuário específicas com privilégios específicos.security
global vazia. As APIs que implementam essa especificação podem ser vulneráveis a acesso não autorizado ou não autenticado às operações confidenciais.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"servers" : [ {
"url" : "/"
} ],
"security" : [],
...
}
security
global vazia.security
global vazia pode permitir que invasores interajam com endpoints de API confidenciais e executem operações que devem ser restritas a contas de usuário específicas com privilégios específicos.security
global vazia. As APIs que implementam essa especificação podem ser vulneráveis a acesso não autorizado ou não autenticado às operações confidenciais.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
security:
security
vazia para uma operação da API.security
vazia podem permitir que invasores interajam com endpoints de API confidenciais e executem ações que devem ser restritas a contas de usuário específicas com privilégios explícitos.security
vazia para uma operação confidencial. Isso substitui os requisitos de segurança definidos globalmente e torna a operação createUsers
vulnerável a acesso não autorizado e não autenticado.
{
"openapi": "3.0.0",
"info": {
...
},
"paths": {
"/users": {
"post": {
"security": [],
"summary": "Create a user",
"operationId": "createUsers",
...
}
...
}
}
security
vazia para uma operação da API.security
vazia podem permitir que invasores interajam com endpoints de API confidenciais e executem ações que devem ser restritas a contas de usuário específicas com privilégios explícitos.security
vazia para uma operação confidencial. Isso substitui os requisitos de segurança definidos globalmente e torna a operação createUsers
vulnerável a acesso não autorizado e não autenticado.
openapi: 3.0.0
info:
...
paths:
/users:
post:
operationId: createUsers
security: []
responses:
'201':
...
security
global.security
global ausente pode permitir que invasores interajam com endpoints de API confidenciais e executem operações que devem ser restritas a contas de usuário específicas com privilégios específicos.security
global. As APIs que implementam essa especificação podem ser vulneráveis a acesso não autorizado ou não autenticado às operações confidenciais.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"servers" : [ {
"url" : "https://example.org"
} ],
...
}
security
global.security
global ausente pode permitir que invasores interajam com endpoints de API confidenciais e executem operações que devem ser restritas a contas de usuário específicas com privilégios específicos.security
global. As APIs que implementam essa especificação podem ser vulneráveis a acesso não autorizado ou não autenticado às operações confidenciais.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
...
security
para uma operação da API.security
vazia podem permitir que invasores interajam com endpoints de API confidenciais e executem ações que devem ser restritas a contas de usuário específicas com privilégios explícitos.security
para uma operação confidencial. Além disso, sem uma definição security
global, a operação createUsers
é vulnerável ao acesso não autorizado e não autenticado.
{
"openapi": "3.0.0",
"info": {
...
},
"paths": {
"/users": {
"post": {
"summary": "Create a user",
"operationId": "createUsers",
...
}
...
}
}
security
para uma operação da API.security
vazia podem permitir que invasores interajam com endpoints de API confidenciais e executem ações que devem ser restritas a contas de usuário específicas com privilégios explícitos.security
para uma operação confidencial. Além disso, sem uma definição security
global, a operação createUsers
é vulnerável ao acesso não autorizado e não autenticado.
openapi: 3.0.0
info:
...
paths:
/users:
post:
operationId: createUsers
responses:
'201':
...
securitySchemes
.securitySchemes
especifica os mecanismos de segurança que podem ser usados globalmente ou por operações da API específicas.securitySchemes
é normalmente especificada no objeto components
reutilizável e é referenciada globalmente ou por operações específicas para ditar os requisitos de segurança para interação.securitySchemes
.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
...
}
}
}
securitySchemes
.securitySchemes
especifica os mecanismos de segurança que podem ser usados globalmente ou por operações da API específicas.securitySchemes
é normalmente especificada no objeto components
reutilizável e é referenciada globalmente ou por operações específicas para ditar os requisitos de segurança para interação.securitySchemes
.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
components:
schemas:
GeneralError:
type: object
properties:
...
security
global podem permitir que invasores interajam com endpoints de API confidenciais e executem operações que devem ser restritas a contas de usuário específicas com privilégios específicos.security
global com segurança opcional por meio do item {}
vazio. As APIs que implementam essa especificação podem ser vulneráveis a acesso não autorizado ou não autenticado às operações confidenciais.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"servers" : [ {
"url" : "/"
} ],
"security" : [ {}, { "oauth_auth" : ["write","read" ]} ],
...
}
security
global podem permitir que invasores interajam com endpoints de API confidenciais e executem operações que devem ser restritas a contas de usuário específicas com privilégios específicos.security
global com segurança opcional por meio do item {}
vazio. As APIs que implementam essa especificação podem ser vulneráveis a acesso não autorizado ou não autenticado às operações confidenciais.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
security:
- {}
- oauth_auth:
- write:users
- read:users