Image for post
Image for post

Nesta artigo, vamos ver 5 usos do Firebase que foram muito úteis para mim em alguns projetos. Vamos lá!

Introdução

O primeiro passo é instalar os packages que nós precisamos:

yarn add react-redux-firebaseyarn add redux-firestoreyarn add firebase

Podemos usar o `npm install`para isso também. ;)

Configuração

Agora, vamos criar nosso arquivo de configuração. No meu caso eu nomeei como firebase-config.js.

import { createStore, combineReducers, compose } from ‘redux’
import { reduxFirestore, firestoreReducer, createFirestoreInstance } from ‘redux-firestore’
import { firebaseReducer } from ‘react-redux-firebase’
import firebase from ‘firebase/app’
import ‘firebase/auth’
import ‘firebase/database’
import ‘firebase/firestore’
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_apiKey,
authDomain: process.env.REACT_APP_FIREBASE_authDomain,
databaseURL: process.env.REACT_APP_FIREBASE_databaseURL,
projectId: process.env.REACT_APP_FIREBASE_projectId,
storageBucket: process.env.REACT_APP_FIREBASE_storageBucket,
messagingSenderId: process.env.REACT_APP_FIREBASE_messagingSenderId,
appId: process.env.REACT_APP_FIREBASE_appId,
measurementId: process.env.REACT_APP_FIREBASE_measurementId, …

Image for post
Image for post

In this article, I would like to share some simple tips about hiding some data in GitHub for security.

Let's provide an example. Let's say we have a React.js app using Travis to handle with CI and CD and using Firebase.
First of all, you need to have a ".env" file. to put the firebase information, something like:

There we'll provide the credentials for firebase and any other important information. But it's not enough. Firebase, for example, generates some files like ".firebaserc" and "firebase.json", we need to hide it as well mostly the first, where is the name of the project database. …


Image for post
Image for post

In this article, we’ll check through 5 uses of Firebase that were very useful for me in some projects. Let’s do it.

Introduction

The first step is to install the packages which we need:

yarn add react-redux-firebaseyarn add redux-firestoreyarn add firebase

We can do that using ‘npm install’. ;)

Configuration

After that, we’ll create our configuration file. In my case, I just named it as ‘firebase-config.js’.

import { createStore, combineReducers, compose } from ‘redux’
import { reduxFirestore, firestoreReducer, createFirestoreInstance } from ‘redux-firestore’
import { firebaseReducer } from ‘react-redux-firebase’
import firebase from ‘firebase/app’
import ‘firebase/auth’
import ‘firebase/database’
import ‘firebase/firestore’
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_apiKey,
authDomain: process.env.REACT_APP_FIREBASE_authDomain,
databaseURL: process.env.REACT_APP_FIREBASE_databaseURL,
projectId: process.env.REACT_APP_FIREBASE_projectId,
storageBucket: process.env.REACT_APP_FIREBASE_storageBucket,
messagingSenderId: process.env.REACT_APP_FIREBASE_messagingSenderId,
appId: process.env.REACT_APP_FIREBASE_appId,
measurementId: process.env.REACT_APP_FIREBASE_measurementId,
}; // from Firebase…


Um exemplo prático de como melhorar a segurança de sua aplicação.

Image for post
Image for post
  • Python (Versão 3)
  • psycopg2

O que é SQL Injection?

É uma técnica de injeção de código, para ataques a aplicações conectadas à um banco de dados, na qual instruções maliciosas são incluídas em um campo de entrada para execução.

Cenário

Digamos que temos uma página web na qual através de um textarea os usuários podem postar comentários.
No trecho de código abaixo é onde chega a informação e é armazenada.

def add_comments(content):  
conn = psycopg2.connect("dbname=yourdatabase")
cursor = conn.cursor()
cursor.execute("insert into comments values ('$s')" % content)
conn.commit()
conn.close()

Onde está o problema do código acima? Você consegue identificar?

Bom, antes de identificar e corrigir o problema, vejamos na documentação do psycopg o que ele nos diz…


Na área de tecnologia da informação, hoje em dia é quase que um requisito obrigatório ter um bom inglês, e na minha visão não basta você “entender” o inglês lido, é preciso ter um inglês avançado e caminhando pra fluência. Agora como conseguir isso?

Image for post
Image for post

Em Janeiro de 2017 meu inglês era quase nulo, sabia muito pouco e naquela época tomei uma decisão de procurar melhorar isso. De lá pra cá meu inglês saiu do modo básico e partiu para o avançado a ponto de realizar entrevistas de 30 a 50 minutos de entrevistas. …


Um Template HTML no angular existem alguns recursos nas quais são importantes no decorrer de um projeto.

A Interpolação nada mais é que um recurso de ‘embedar’ expressões dentro de uma área delimitada por {{ .. }}. Abaixo segue um vídeo demonstrando alguns exemplos simples da Interpolação

Além da interpolação, podemos utilizar expressions em tags delimitados por colchetes, capturando o que queremos seja vindo de uma propriedade ou de uma referência de variável. Vejamos no vídeo.


Olá!
No artigo anterior abordei sobre como evitar SQL Injection no Python. Neste vamos melhorar ainda mais o código abordado neste artigo. Indico que você leia-o também.

Image for post
Image for post

Código:

def add_comments(content): 
conn = psycopg2.connect("dbname=yourdatabase")
cursor = conn.cursor()
cursor.execute("insert into comments values ($s)", (content,))
conn.commit() conn.close()

Qual o problema com este código?

Bom, indo bem direto ao ponto, o problema é que o conteúdo (content) que vem da página web não está sendo tratado, ou seja, pode ainda haver um código malicioso como um script. Vamos fazer um exemplo:

No textarea da página web posso colocar algo como:

<script> setTimeout(function() { document.getElementById('content').value = "Página com problema!"; document.getElementById('content').form.submit(); …

About

Eder Taveira

Software Engineer, Full Stack Developer, Musician and Writer. edertaveira.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store