Exercício Intermediário: multiplicando em FOR aninhado.

Uma tarefa muito comum em JavaScript é percorrer o conteúdo de um vetor. Você pode utilizar o loop FOR para isso. Lembre-se de que os vetores começam com o índice em 0, o que significa que o último elemento do vetor é o comprimento -1.

Se você tem um vetor multidimensional, você pode utilizar a mesma lógica do laço for para percorrer os vetores e os sub-vetores. Este é um exemplo:

let arr = [[1,2], [3,4], [5,6]];
for (let i=0; i < arr.length; i++) {
  for (let j=0; j < arr[i].length; j++) {
    console.log(arr[i][j]);
  }
}

Este laço de repetição aninhado percorre cada sub-elemento do sub-vetor por vez. Observe que, para percorrer o loop interno, estamos verificando o comprimento de arr[i], visto que arr[i] é, em si, um vetor.

EXERCÍCIO:

Modifique a função multiplicarTudo de modo que multiplique a variável produto por cada número nos sub-vetores do array:

function multiplicarTudo(arr) {
  let produto = 1;
  // Altere o código a partir desta linha

  // Altere o código até esta linha.
  return produto;
}

// Modifique os valores para testar o seu código.
multiplicarTudo ([[1,2],[3,4],[5,6,7]]);

RESULTADOS:

  • A função multiplicarTudo([[1],[2],[3]]) deve retornar 6;
  • A função multiplicarTudo([[1,2],[3,4],[5,6,7]]) deve retornar 5040;
  • A função multiplicarTudo([[5,1],[0.2,4, 0.5],[3,9]]) deve retornar 54;

Gatsby recebe US$ 15 milhões em financiamento

O Gatsby anunciou que levantou um financiamenteo de US$ 15 milhões para impulsionar a modo como reinventou o desenvolvimento de sites.
O Gatsby é uma estrutura de código aberto gratuita baseada em React. Com uma plataforma de malha de conteúdo, ela auxilia na criação de sites e aplicativos extremamente rápidos.

Acreditando que a arquitetura de sites está sendo reinventada, o Gatsby proporciona a criação de sites rápidos, seguros e estáveis. Ele retira uma grande parte da complexidade do desenvolvimento de sites, tornando o processo incrível e divertido.
Ele se esforça para fornecer dados e códigos divididos imediatamente, otimizando as imagens e carregando a página com seus elementos críticos primeiro.

Com uma malha de conteúdo, o Gatsby preserva os fluxos de trabalho dos criadores de conteúdo e oferecem acesso à serviços em nuvem sem integração manual. Como a web está migrando para uma arquitetura cada vez mais dissociada, o Gatsby é o que torna a experiência mais incrível.
Sendo uma ferramente de código aberto, o Gatsby contribui muito para a comunidade, ajudando a tornar a web um espaço acessível e aberto. Com os financiamentos mais recentes, mais de US$ 3 milhões por ano serão investidos em código aberto, produzindo plugins e materiais de aprendizado.

As tendências que impulsionam a web são três principais, como o Gatsby acredita: Arquitetura dissociada, com serviços modulares especializados; Ecossistema de JavaScript em amadurecimento para criar sites escaláveis e com excelência em qualidade e a necessidade de criar experiências mais atraentes para os usuários.
Atualmente existem mais de 35 membros atuando em código aberto, escrevendo documentações e tutoriais, criando ferramenta de design e construção de sites de última geração.

Para mais informações veja o post original no link abaixo:
Fonte: https://www.infoq.com/news/2019/10/react-gatsby-raises-15m-usd/

Gatsby Blog: https://www.gatsbyjs.org/blog/2019-09-26-announcing-gatsby-15m-series-a-funding-round/

Gostou desta notícia? Comente abaixo!

Malware Nodersok/Divergent afeta milhares de PCs

Novos malwares identificados pela Microsoft e Cisco Talos afetaram milhares de PCs nos Estados Unidos e na Europa e transformam sistemas em proxies para a realização de atividades maliciosas, disseram as empresas.

O que é o Nodersok?

A ameaça sem arquivo (fileless) – chamada Nodersok pela Microsoft e Divergent pela Cisco Talos – possui muitos de seus próprios componentes, mas também aproveita as ferramentas existentes para realizar seu trabalho sujo. O malware utiliza o Node.js que é usado por muitos aplicativos Web e o WinDivert, um utilitário de captura e manipulação de pacotes de rede, para transformar os sistemas em proxies involuntários.

Pesquisadores da Microsoft afirmam que, uma vez que a Nodersok transforma máquinas em proxies, as utiliza como

…um retransmissor para acessar outras entidades da rede (sites, servidores C&C, máquinas comprometidas etc.), o que lhes permite realizar atividades maliciosas furtivas…

disse a empresa. em uma postagem do blog.

Os pesquisadores do Cisco Talos, por outro lado, disseram que os proxies criados pelo Divergent são usados ​​para realizar fraudes por clique. Além disso, o malware tem características semelhantes às observadas em outros malware de fraude de clique, como o Kovter, informou a empresa em um post no blog.

Como o ataque funciona?

A infecção por Nodersok é mais ou menos um ataque de dois estágios que baixa vários componentes no PC de um usuário. Os sistemas são afetados inicialmente quando um usuário executa um arquivo HTA como um download do navegador, clicando nele ou navegando em um anúncio malicioso, de acordo com a Microsoft.

O código JavaScript no arquivo HTA baixa um componente do segundo estágio na forma de outro arquivo JavaScript ou um arquivo XSL que contém o código JavaScript. Esse componente inicia um comando do PowerShell oculto dentro de uma variável de ambiente e inicia instâncias adicionais do PowerShell, de acordo com a Microsoft.

Os comandos do PowerShell baixam e executam componentes criptografados que, entre outras coisas, tentam desativar o Windows Defender Antivirus e o Windows Update e iniciam um código de shell binário que tenta elevar privilégios na máquina infectada. A carga final do malware é um módulo JavaScript escrito na estrutura do Node.js. que pode transformar a máquina em um proxy, disse a Microsoft.

Como evitar

Para evitar a infecção, a Microsoft está aconselhando as pessoas a não executarem arquivos HTA encontrados em seus sistemas, especialmente aqueles que não se lembram de baixar ou cuja origem não conseguem identificar, informou a empresa.

Outra opção é utilizar programas de antivírus que estejam preparados para reconhecer e remover este tipo de ameaça. Segundo o pessoal da Microsoft o próprio Windows defender está apto a fazer isso, então podemos ficar seguro que a maioria dos antivírus também esta 😊!

Fonte: threatpost.com

Exercício Fácil: Soma de itens do vetor

Neste exercício, você terá que somar os valores de um vetor até a metade de seu tamanho e colocar a soma em um índice de um novo vetor.

Faça a soma também dos valores dos itens do vetor após a metade de seu tamanho. Coloque a soma em um índice do novo vetor.

Exemplo:

let vetor = [10, 20, 30, 40, 50, 60, 70, 80, 90];

Neste exemplo, temos um vetor de tamanho 9. Sabemos que a metade de 9 é 4.5, logo, devemos pegar todos os valores contidos em cada elemento que seja menor que a metade do tamanho do vetor. Neste caso, teremos a soma dos valores 10 + 20 + 30 + 40, que resulta em: 100.

O valor obtido, 100, deverá ser inserido na primeira posição de um novo vetor, que deverá ser criado.

let novoVetor = [];

Partindo para a próxima etapa do nosso exercício, devemos realizar a soma dos valores nos elementos restantes. Para isso, você deve realizar a soma dos elementos e inserir o resultado no índice do novo vetor. A soma dos elementos deve ser 50 + 60 + 70 + 80 + 90, que resulta em: 35.

O valor obtido, 350, deverá ser inserido na segunda posição do nosso novo vetor, que foi criado anteriormente.

O seu resultado deverá ser algo parecido como:

novoVetor = [100, 350];

Utilize o console.log() para mostrar o seus resultados.

DICA:

Para chegar no resultado correto, utilize o vetor.length -1 na sua condicional.

Você pode realizar este exercício da maneira que lhe convém, mas aconselhamos a utilizar uma estrutura condicional dentro de seu loop de repetição. Mas nada impede de você utilizar suas próprias maneiras para resolução deste exercício.

Você pode realizar a nossa resolução do exercício abaixo:

let vetor = [10, 20, 30, 40, 50, 60, 70, 80, 90];

let novo = [0, 0];

for (let indice = 0; indice < vetor.length; indice++) {
           
    if (indice < ((vetor.length-1) / 2)){
        novo[0] += vetor[indice];
           
    } else {
        novo[1] += vetor[indice];
    }
            
}
console.log(novo);

Gostou deste exercício? Comente o seu resultado e tire suas dúvidas!

 

JavaScript Básico: Break e Continue

 

Você já conhece o break e continue e suas utilidades? Conheça neste artigo:

BREAK:

O comando “break” serve para encerrar a leitura. O break é um comando que podemos utilizar quando queremos parar/encerrar o laço de repetição na hora. A instrução break interrompe o laço e continua executando o código após o loop (se houver).

Exemplo:

let carros = ["BMW", "Volvo", "Saab", "Ford"];

list: {
    console.log(carros[0]);
    console.log(carros[1]);
    break list;
    console.log(carros[2]);
    console.log(carros[3]);
}

CONTINUE:

Com este comando, é possível iniciar a próxima repetição do loop. A instrução continue interrompe uma iteração (no laço de repetição), se uma condição específica ocorrer, e continua com a próxima iteração no laço de repetição.

for (let i = 1; i < 10; i++) {
    if (i === 3) {
        continue;
    }
    console.log("O número atual é: " + i);
}

Com a instrução continue, você poderá utilizá-la para apenas ignorar  uma iteração de loop.

A instrução break pode ser utilizada para pular de um loop ou de um switch. Ela pode ser usada para pular qualquer bloco de código.

Exercício 1:

Crie um laço de repetição FOR. Este laço deverá começar a iterar no número 1. Enquanto o índice for menor que 10, o laço deverá continuar iterando.

Com o laço criado, cria um estrutura condicional que, utilizando o comando break, pare a iteração quando ela alcançar o valor 5. Caso esta condição seja atendida, mostre os números utilizando o console.log.

Exercício 2:

Crie um vetor que contenha os seguintes nomes: “André”, “Ana Paula”, “Júlio”, “Marcela”, “Rubem”. Utilize o laço de repetição FOR para percorrer esta lista. Quando a leitura for igual a “Júlio”, utilize o comando continue. Ele irá exibir todos os outros nomes deste vetor. Utilize o console.log para logar os dados no console.

Gostou deste artigo? Comente abaixo!

JavaScript Básico: While

 

É um loop que funciona de forma bem simples. Chamado de “enquanto” (while) a condição for verdadeira (true), o código será executado. Fazendo isso, você cria um laço de repetição que irá executar para cada vez que a condição for verdadeira.

A Sintaxe do While:

while (condição){
    rotina;
}
Onde:
  • condição: é uma expressão que vai ser avaliada antes de cada vez que o laço for executado. Se a condição for verdadeira, a rotina será executada. Quando a condição for avaliada como falsa, a execução continuará na declaração que vem depois do laço while.
  • rotina: é uma declaração que será executada quando/enquanto a condição for avaliada como verdadeira.

Por exemplo:

// Variavel numero que recebe o valor numérico 10
let número = 10;

// Enquanto o número for menor que 100
while (numero < 100){
    // Irá mostrar o valor acrescentando 1 até que se alcance o total
    console.log("valor:" + numero);
     numero++;
}

Você precisará fornecer uma forma para que o loop termine, caso contrário terá um loop infinito.

let número = 10;

// Enquanto o número for menor que 100
while (numero < 100){
    let valor = 0;
    console.log("valor:" + valor);
    valor = valor + 2;
}

Exercício 1:

Crie um laço while que irá iterar enquanto n for menor ou igual a 5. Mostre no console os valores obtidos.

Dica:

Para realizar este exercício, crie uma variável n que receberá o valor zero. Crie o laço de repetição while que irá ter a condição n menor ou igual a 5. Coloque a rotina a ser seguida dentro do laço de repetição.

 

Exercício 2:

Crie um vetor chamado carros. Este vetor irá conter os valores “Gol”, “Uno”, “S10”, “Kadett”. Você também precisa criar uma variável que será o índice para percorrer este laço de repetição. No seu laço de repetição while, utilize o console.log para mostrar todos os nomes dos carros que estão contidos no seu vetor.

 

Gostou deste artigo? Comente abaixo os seus resultados e tire as suas dúvidas!

Black Hat 2019 elimina vulnerabilidades no WhatsApp, iOS, Azure

A criptografia de ponta a ponta do seu messenger favorito pode não ser tão segura quanto você pensa. Na conferência de segurança cibernética da Black Hat 2019 (de 7 a 8 de agosto), em Las Vegas, pesquisadores de segurança do código-fonte do WhatsApp da CheckPoint realizaram engenharia reversa para interceptar e manipular mensagens privadas com êxito. O WhatsApp não é a única plataforma importante que está sendo examinada na conferência.

Natalie Silvanovich, da equipe do Project Zero do Google, investigou a superfície de ataque remoto sem interação do iPhone e encontrou 10 bugs no SMS, MMS, Visual Voicemail, iMessage e Mail, todos corrigidos pela Apple. As vulnerabilidades remotas podem ser exploradas para invadir e controlar remotamente um iPhone sem o conhecimento do usuário.

Em uma postagem oficial do blog do Project Zero, Silvanovich escreve: “Diferentemente do Android, as mensagens SMS são processadas em código nativo pelo iPhone, o que aumenta a probabilidade de vulnerabilidades de corrupção de memória. A maioria das vulnerabilidades ocorreu no iMessage devido à sua superfície de ataque ampla e difícil de enumerar. ”

Para torná-los mais seguros, a Apple está dando iPhones a hackers e ethical hackers para que eles possam invadir e sinalizar vulnerabilidades que encontrarem. Na conferência Black Hat, a Apple abriu seu programa de recompensas por bug para iOS e MacOS a todos os pesquisadores e também aumentou o prêmio de recompensa por bug de US $ 100.000 para US $ 1 milhão.

Ao elaborar as vulnerabilidades do WhatsApp, os pesquisadores da Check Point apontaram que haviam criado uma ferramenta para descriptografar as comunicações no WhatsApp. Quando eles reverteram seu algoritmo para descriptografar os dados, descobriram que a plataforma de mensagens estava usando o protocolo protobuf2 para criptografia.

Quando converteram os dados do protobuf2 em JSON (JavaScript Object Notation) – um formato de intercâmbio de dados – eles viram os parâmetros secretos das mensagens que eles foram capazes de manipular.

Continue lendo “Black Hat 2019 elimina vulnerabilidades no WhatsApp, iOS, Azure”

Hackers comprometem mais 80 sites de comércio eletrônico

Pesquisadores de segurança cibernética descobriram mais de 80 sites de comércio eletrônico comprometidos de Magecart que estavam enviando ativamente informações de cartão de crédito de compradores on-line aos servidores controlados por invasores.

Operando seus negócios nos Estados Unidos, Canadá, Europa, América Latina e Ásia, muitos desses sites comprometidos são marcas respeitáveis ​​na indústria de motorsports e high fashion, revelaram hoje pesquisadores do Aite Group e da Arxan Technologies em um relatório compartilhado com o The Hacker News.

Em um mundo cada vez mais digital, os ataques Magecart surgiram como uma ameaça importante de segurança cibernética para sites de comércio eletrônico.

Magecart é um termo genérico dado a diferentes grupos de criminosos cibernéticos especializados em implantar secretamente skimmers on-line de cartões de crédito em sites de comércio eletrônico comprometidos com a intenção de roubar detalhes de cartões de pagamento de seus clientes.

Esses skimmers virtuais de cartão de crédito, também conhecidos como ataque de formjacking, são basicamente códigos JavaScript que os hackers inserem secretamente em um site comprometido, geralmente na página do carrinho de compras, projetados para capturar informações de pagamento dos clientes em tempo real e enviá-las a um servidor invasor-remoto  controlado.

Ultimamente, Magecart é notícia por conduzir vários assaltos de alto nível contra grandes empresas, incluindo British Airways, Ticketmaster, Newegg e outras.

A campanha recém-divulgada não pertence a um único grupo de hackers Magecart; em vez disso, os pesquisadores usaram um mecanismo de busca de código-fonte para procurar por JavaScript ofuscado na Internet com padrões maliciosos que eram vistos anteriormente nos skimmers virtuais de cartões de crédito do Magecart.

De acordo com os pesquisadores, a técnica permitiu que eles descobrissem rapidamente mais de 80 sites de comércio eletrônico comprometidos por grupos Magecart, a maioria encontrados em versões desatualizadas do Magento CMS, vulneráveis ​​a um carregamento não autenticado e a vulnerabilidades de execução remota de código.

 

“A ausência de proteção no aplicativo, como ofuscação de código e detecção de violação, torna os aplicativos da Web vulneráveis ​​a um tipo de ataque cibernético chamado formjacking”, disseram os pesquisadores.

 

“Muitos dos sites comprometidos estão executando as versões 1.5, 1.7 ou 1.9. As vulnerabilidades arbitrárias de upload de arquivos, execução remota de código e falsificação de solicitação entre sites afetam o Magento versão 2.1.6 e inferior. Embora não possa ser declarado com autoridade que foi isso que levou à violação desses sites, são versões vulneráveis ​​do Magento que permitem que os adversários injetem o código de formjacking no site “.

Continue lendo “Hackers comprometem mais 80 sites de comércio eletrônico”

Atualizações de Cursos MundoJS!

Olá pessoal! Estamos aqui para contar as novidades para vocês! Neste último mês, aconteceram algumas mudanças em nosso site! Nossa aba de cursos, no site, sofreu algumas alterações. Antes nós disponibilizávamos alguns links para cursos pagos e gratuitos de JavaScript.

Mas agora, o MundoJS começou a lançar seus próprios cursos!

No último mês, lançamos dois cursos na plataforma Udemy, sendo um totalmente gratuito e outro pago, chamados Introdução ao JavaScript e JavaScript Básico, respectivamente. Você pode acessar diretamente:

No curso de Introdução ao JavaScript, abordamos conceitos básicos da linguagem, criamos pequenos algoritmos, vemos as chamadas estruturas condicionais, enfim, o conteúdo básico para qualquer programador, que você provavelmente aprenderia no seu primeiro ano de faculdade.

No curso de JavaScript Básico, começamos a abordar conceitos um pouco mais avançados. Com um foco interessante na Manipulação do DOM e Eventos, abordamos de forma prática a utilização de eventos sobre elementos HTML. O curso também possui dois projetos práticos: Um jogo da velha e uma calculadora, feitos com HTML, CSS e JavaScript! O mais interessante é: disponibilizamos o HTML e CSS para você e, durante o curso, focamos apenas na lógica de programação por trás destes projetos!

Continue lendo “Atualizações de Cursos MundoJS!”