Histórico de mensagens em sugestões

EXIBINDO CONVERSAS RECENTES:

Canal: sugestões
Avatar discord do usuario navossoc

navossoc

Ver Respostas

mas o txid tem um conjunto bem definido de caracteres, não?

Avatar discord do usuario rubenskuhl

rubenskuhl

Mas em tempo: a idéia de tornar mais restritivo é super positiva. É sim um risco operacional ter quase uma máquina de Turing com uma fita qualquer para executar... 😉

Avatar discord do usuario francisco.carvalho

francisco.carvalho

<@!370847985199742977> pensamos nisso, mas ainda sim é muito inseguro, pois o problema possui 2 variáveis importantes: regex e txid. Testar a regex com uma amostragem aleatória de txids não nos trouxe segurança.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ou múltiplos, ou se for um só, tem que separar por chaves. Dá para fazer dos dois jeitos.

Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

<@!780500321994539068> é muito tranquilo aceitarmos vários "comecaCom" e varios "terminaCom". É uma ideia! Se atender seu caso de uso, fará sentido pra gente.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ou seja, além de ter várias classes, cada classe só seria usada numa chave.

Avatar discord do usuario navossoc

navossoc

Ver Respostas

descarta ela

Avatar discord do usuario navossoc

navossoc

cria um test case por ex, roda contra a expressão desejada... se passar do tempo definido

Avatar discord do usuario rubenskuhl

rubenskuhl

Mas talvez possa ser feito por chave.

Avatar discord do usuario navossoc

navossoc

uma sugestão simples, mas não seria mais fácil testar a expressão?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O caso que tínhamos pensado tinha várias classes... 😦

Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

Não vi necessidade de serem múltiplos, pensei em ser um só. Porém, é possível aceitarmos múltiplos e aplicarmos OR ou AND entre eles, se vocês virem como positivo.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Os comecaCom/terminaCom/contem são múltiplos ? Ou seja, poderia ser:
"recebimento": {
"txid": {
"comecaCom": "gnPix",
"comecaCom": "BACEN",
"aceitarVazio": false
}
}
?

Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

Eu acredito que resolveríamos com outra flag, <@!780500321994539068> , algo nesse sentido:

"recebimento": {
"txid": {
"contem": "gnPix",
"aceitarVazio": true
}
}

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Como é um match de txid nulo nessa versão restrita ? Pq os casos de txid com regras de formação que tínhamos pensado se enquadram nas regras mais restritas (ou seja, atendem).

Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

Boa tarde @everyone !

Retomando o assunto endpoint de configurações (https://www.notion.so/Endpoint-de-configura-es-0a97faee68f845ab96ec21551862fe6c).

Nosso time de engenharia observou que existem possíveis situações em que o match do regex com a string do txid pode demorar muitos segundos ou até minutos. Existem situações inclusive de crash da aplicação. Em outras palavras: não é seguro recebermos via input qualquer regex.

Um exemplo que vocês podem testar no browser:

let regexp = /^(\d+)$/;
let str = "012345678901234567890123456789z";
alert( regexp.test(str) );

O alert acima levará um longo tempo até que apareça. Imaginem isso no ato de recebimento de um Pix, no qual cada milisegundo é um fator determinante para um timeout inesperado.

A conclusão é que precisamos controlar melhor quais regex serão aceitas.

A proposta é, ao invés de receber um txidRegex, receber algo mais limitado que também atenda da mesma forma:

"recebimento": {
"txid": {
"comecaCom": "gnPix"
}
}

"recebimento": {
"txid": {
"terminaCom": "gnPix"
}
}

"recebimento": {
"txid": {
"contem": "gnPix"
}
}

comecaCom/terminaCom/contem: a-zA-Z0-9{0,15} //caracteres aceitos

Gostaria de opinião de vocês em relação a essa nova proposta, bem como sugestões dentro dessa nova abordagem.

Para quem interessar, uma referência sobre o assunto regexp-catastophic-backtracking com mais detalhes.
https://javascript.info/regexp-catastrophic-backtracking

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

"Alguns perfis" leia-se "Os menos paranóicos que o Rubens" 😉

Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

Esse primeiro deploy traz uma versão mais simples, na qual a Gerencianet resolve tudo. Isso atenderá a alguns perfis de clientes. Lembrando que nós não armazenamos a chave privada.

Mas a sugestão de aceitar um CSR é tão boa que já tá até no Roadmap, neste card: https://www.notion.so/Gera-o-de-certificados-API-Pix-a-partir-de-um-CSR-de6f5650a5d44ed092af81d6b830ed66

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Foi colocado no sistema a geração de certificados, mas ela gera tanto a parte secreta quanto pública. O usual de CAs é que apenas o titular tenha a parte secreta, envia sua chave pública para a CA e essa assina a chave pública. Sugiro que seja alterado para usar um CSR e não gerar a chave.

Avatar discord do usuario .jaquelinesantos

.jaquelinesantos

Olá @Deleted User Tudo bem?
Vou te chamar no privado.