
Research
Malicious NuGet Packages Typosquat Nethereum to Exfiltrate Wallet Keys
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português.
Liquido é um ferramentário que combina as três linguagens para ser possível desenvolver para a internet 100% em português.
Você deve ter o Node.js instalado.
Depois de instalar no Node.js, execute o seguinte comando no diretório em que seu projeto está:
npm i liquido
Se preferir usar o Yarn ao invés do NPM, use:
yarn add liquido
Isso deve criar um arquivo package.json
com algumas informações de dependências. Neste arquivo, adicione o seguinte:
"scripts": {
"liquido": "node ./node_modules/liquido/index.js"
}
E então execute com:
yarn liquido
Se quiser usar liquido com o nodemon para que a aplicação seja recarregada toda vez que houver alteração nos fontes, primeiro instale o nodemon:
npm install -g nodemon
Modifique seu script para o seguinte:
"scripts": {
"liquido": "nodemon ./node_modules/liquido/index.js"
}
Você pode começar seu primeiro projeto do zero, criando todos os arquivos e diretórios manualmente, ou pode utilizar o modo ILC (Interface por Linha de Comando, ou CLI, em inglês) para gerar uma estrutura básica de arquivos e diretórios.
Para gerar um novo projeto, utilize o comando:
npx liquido novo [nome-do-projeto]
nome-do-projeto
é opcional. Se não for fornecido, a interface deverá perguntar pelo nome do projeto.
Crie no seu projeto um diretório chamado rotas
. Depois, crie dentro de rotas
um arquivo chamado inicial.delegua
.
Dentro de inicial.delegua
, adicione o seguinte:
liquido.rotaGet(funcao(requisicao, resposta) {
resposta.enviar("Olá mundo").status(200)
})
Execute liquido usando o seguinte comando:
yarn liquido
Ou, se preferir o NPM:
npm run liquido
Isso deve iniciar um servidor HTTP na porta 3000. Experimente entrar em http://localhost:3000. A mensagem "Olá mundo" deve aparecer.
A maior inspiração deste projeto é a FastAPI, mas também há influência de:
Algumas ideias retiradas desses projetos:
Para uma implementação inicial, foram escolhidas bibliotecas consagradas do Node.js de desenvolvimento para a Internet:
Liquido instancia os três componentes básicos de Delégua e os controla, instrumentando instruções escritas em Delégua para JavaScript puro. Isso garante a acessibilidade de se programar em português com o mínimo de impacto no desempenho da aplicação como um todo, além da eliminação da complexidade de se implementar tudo dentro de Delégua.
Toda e qualquer rota deve ficar em um diretório rotas
. O arquivo padrão deve ter o nome inicial.delegua
.
Com isso, se queremos criar uma rota na raiz do site, podemos criar um arquivo inicial.delegua
com o seguinte:
liquido.rotaGet(funcao(requisicao, resposta) {
resposta.enviar("Olá mundo").status(200)
})
A instrução acima registra uma rota HTTP GET em "/" (por exemplo, http://localhost:3000/
) que responde com um texto "Olá mundo" e o status HTTP 200.
Se queremos uma rota http://localhost:3000/teste
, podemos fazer de duas formas:
teste.delegua
em /rotas
teste
dentro de rotas com um arquivo inicial.delegua
.Assim como para o diretório rotas
, todo e qualquer diretório dentro de rotas
também tem como arquivo padrão o inicial.delegua
Cada arquivo só pode ter uma chamada por método HTTP de rota. Por exemplo, um arquivo não pode ter duas chamadas a liquido.rotaGet()
. Nada impede um arquivo de ter uma chamada para cada tipo de rota. Os métodos são:
liquido.rotaGet()
liquido.rotaPost()
liquido.rotaPut()
liquido.rotaDelete()
liquido.rotaPatch()
liquido.rotaCopy()
liquido.rotaHead()
liquido.rotaOptions()
liquido.rotaPurge()
liquido.rotaLock()
liquido.rotaUnlock()
liquido.rotaPropfind()
Algumas rotas ainda não são suportadas porque o Express.js 4 não as implementou, mas estão marcadas para implementações futuras (Express.js 5, que ainda é beta). São elas:
liquido.rotaLink()
liquido.rotaUnlink()
liquido.rotaView()
Liquido procura por um arquivo chamado configuracao.delegua
na raiz do seu projeto. Nele ficam as configurações globais da aplicação.
Um exemplo de configuracao.delegua
é o seguinte:
liquido.roteador.cors = verdadeiro
liquido.roteador.bodyParser = verdadeiro
liquido.roteador.morgan = verdadeiro
liquido.roteador.cookieParser = verdadeiro
liquido.roteador.passport = verdadeiro
liquido.roteador.json = verdadeiro
liquido.roteador.helmet = verdadeiro
Uma aplicação em Liquido pode servir arquivos estáticos se o roteador tiver uma configuração de diretório correspondente. Por exemplo:
liquido.roteador.diretorioEstatico = 'publico'
Ou seja, havendo um diretório publico
na sua aplicação, é possível servir arquivos como imagens, CSS, JS e assim por diante.
Se uma imagem com o nome teste.png
é colocada dentro do diretório publico
, ao iniciar sua aplicação em http://localhost:3000, a imagem pode ser acessada por http://localhost:3000/teste.png.
Ao inicializar, Liquido verifica um diretório estilos
. Havendo arquivos FolEs nele (extensão .foles
), cada arquivo é automaticamente convertido para CSS e salvo em um diretório dentro do diretório estático definido na configuração chamado css
. Ou seja, um arquivo teste.foles
é salvo em /publico/css/teste.css
e pode ser acessado por http://localhost:3000/css/teste.css.
Liquido foi pensado para servir qualquer padrão de projeto para aplicações Web. A primeira versão de Liquido garante a implementação dos seguintes padrões:
Futuras versões de Liquido terão:
Liquido permite a qualquer desenvolvedor que saiba português a escrever aplicações Web, e possivelmente criar um ecossistema profissional a partir dele. Procuramos traduzir o máximo possível de informações e conceitos por uma questão de acessibilidade, mas há limites para isso. Por exemplo, não traduzimos os métodos de HTTP porque entendemos que uma tradução disso implicaria em um protocolo novo de transferência.
O que tentamos fazer é instigar os desenvolvedores a aprenderem inglês conforme vão dominando outros conceitos. Um aprendizado direcionado de inglês é muito mais eficiente do que o aprendizado da língua por si só, sem um objetivo no horizonte.
FAQs
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português
We found that liquido demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.
Product
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.
Product
Socket is launching experimental protection for the Hugging Face ecosystem, scanning for malware and malicious payload injections inside model files to prevent silent AI supply chain attacks.