Todos os posts de marceloviana

Access to XMLHttpRequest at ‘http://meudominio/api/token’ from origin ‘http://localhost’ has been blocked by CORS policy: Request header field x-csrf-token is not allowed by Access-Control-Allow-Headers in preflight response.

1
# vim /etc/apache2/conf-enabled/Headers.conf
1
2
3
4
5
6
7
8
9
10
# Always set these headers.
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token, X-CSRF-Token"
 
# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]

Configuração de banco de dados para programação em bash | Shell Script

# Configurações do banco
database=”nomebanco”
user=”usuario”
pass=”senha”
host=”127.0.0.1″
port=3306
timeout=15
#

export MYSQL_PWD=$pass

connectDB=”-u$user -D$database -h$host -P$port –connect-timeout=$timeout”

mysql $connectDB -e “use $database” > /dev/null 2>&1
if [ $? -ne 0 ];then
echo “Algo deu errado ao conectar no banco! Verifique as Configurações em ./libs/configureDB”
exit
fi

Instalando php7.2 e Composer no Deepin – Contribuição: Leomar Duarte

1) Seguir este tutorial para instalação do PHP7.2:

How To Install PHP (7.3, 7.2 & 5.6) on Debian 9 Stretch

sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add –
echo “deb https://packages.sury.org/php/ stretch main” | sudo tee /etc/apt/sources.list.d/php.list

# Instalar o PHP 7.2 e suas extensões
sudo apt install php7.2 php7.2-mysql php7.2-curl libapache2-mod-php7.2 php7.2-cli php7.2-mbstring php7.2-XML php7.2-zip php7.2-bz2 php7.2-common php7.2-gd php7.2-json php7.2-intl -y
# Caso não tenha instalado o curl na sua máquina digite:
sudo apt install curl -y
# Faz o download do instalador do composer e realiza a instalação dele no diretório correto, para o composer funcionar de forma global no sistema.
curl -sS https://getcomposer.org/installer | sudo php — –install-dir=/usr/local/bin –filename=composer
# Criar arquivo de Alias:
ln -s /usr/local/bin/composer /usr/bin/composer

Instalando nodejs por NVM – Enviado por Leomar Duarte

Fonte e créditos:

Como Instalar Node.js e NPM no Ubuntu 18.04

1) Primeiro, baixe o NVM usando wget. Execute:
sudo apt install wget
2) Em seguida utilize o comando:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
3) O próximo passo é permitir que o NVM seja utilizado do seu perfil de usuário bash com o comando:
source ~/.profile
4) Agora você pode usar o NVM para mostrar todas as versões do Node.js disponíveis para ser instaladas.
nvm ls-remote
5) Fique à vontade para escolher a versão que preferir. Por motivos de estabilidade e suporte recomendamos a versão 10.15.1. Execute:
nvm install 10.16.0 (Latest LTS: Dubnium)

Comandos Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Instalação rápida:
curl -fsSL https://get.docker.com | sh;
# Execução:
docker run -d -p 8008:80 -v /home/USUARIO/ssp/projetos/:/var/www/ NOMEIMAGEM /usr/sbin/apachectl -D FOREGROUND
# múltiplas portas de esculta:
docker run -d -p 8008:80 -p 82:82 -v /home/USUARIO/ssp/projetos/:/var/www/ NOMEIMAGEM /usr/sbin/apachectl -D FOREGROUND
 
# Rodar script após executar o docker:
# modo interativo
docker exec -i 7e79e9315e4f /meuScript.sh
# modo em background:
docker exec -d 7e79e9315e4f /meuScript.sh
 
# Para docker:
sudo docker stop ID-Container
 
# Apagar todas as imagens:
docker rmi $(docker images -q)
 
# Apagar todas as imagens que já foram para execução (docker ps -a)
docker rm $(docker ps -aq)

Script para baixar todas braches de um projetos – Shell Script

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
#!/bin/bash
indexRegister=0
origin="origin"
dirWork=$1
totalRegister=""
 
if [ -z $dirWork ];then
    echo "Informe o diretorio do projeto com Git inicializado"
    echo "Exemplo: /var/www/meuprojeto.com/"
    exit
fi
 
cd $dirWork
 
totalRegister=$(echo -n $(( $(git ls-remote | grep "refs/heads" | wc -l))))
for i in $(git ls-remote | awk '{print $2}' | grep "refs/heads" | sed 's/refs\/heads\///g')
do
    #if [ $indexRegister -gt 0 ];then
      git fetch $origin $i:$i > /dev/null 2>&1
      if [ $? -eq 0 ];then
        echo "$i, OK!"
      else
        echo "Algo deu errado ao baixar $i - Isso normalmente ocorre se esta branch já existir no seu local."
      fi
    #fi
 
    echo "$(( $(( indexRegister=indexRegister+1 ))*100/$totalRegister ))% concluido"
done

Alias para disponibilizar o comando no sistema:

1
sudo ln -s /home/USUARIO/allBranches.sh /usr/bin/allBranches

Agora é só chamar o comando de forma global:

1
$ allBranches /var/www/meuprojeto.com/

Permissão adequada em aplicações de servidor Apache2

1
2
3
4
5
6
7
8
    # Configuração geral de dono e grupo:
     chown -R root:www-data /var/www
    # Permissão geral de para dono, grupo e outros:
     chmod -R 744 /var/www/
    # Reconfigura as permissões apenas de grupo para diretórios (acesso Apache - www-data):
     find /var/www/ -type d -exec chmod g=rx {} ";"
    # Reconfigura permissões apenas para diretórios de uploads:
     find /var/www/ -type d -iname "upload*" -exec chmod -R g=wrx {} ";"

Script para analisar e bloquear possíveis ataques ao servidor por meio de requisições elevadas | Shell Script + TCPDUMP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
##
 
 # Repare que este script depende primeiramente da execucao do TCPDUMP
 # tcpdump -i any port 80 -nn | awk '{print $3}' >> origem_http_ip
 # A variavel fileAnalyze (declarada no script) condiz com o arquivo 'origem_http_ip' gerado pelo TCPDUMP.
 
##
exceptions[0]="127.0.0.1"
exceptions[1]="10.142.0.2"
exceptions[2]=$(curl -s ip.infsite.org)
fileAnalyze="origem_http_ip"
tmpFileAnalyze="/tmp/fileAnalyze-$fileAnalyze"
logResulted="$fileAnalyze.logResult"
maxRequestAccept=5000
remoteIp=""
requestNumber=""
totalRegister=0
percentageProgress=0
indexRegister=0
 
 
echo "Preparando, por favor espere..."
> short.list
echo "Relatorio iniciado em $(date +%d/%m/%Y-%H:%M:%S)" > $logResulted
cat $fileAnalyze | cut -d. -f 1-4 | sort -n | uniq -c > $tmpFileAnalyze
totalRegister=$(cat $tmpFileAnalyze | wc -l)
 
 
funcExceptions(){
    ip="$1"
    verify=1
    for e in ${exceptions[@]}
    do
        if [ "$ip" == "$e" ];then
            verify=0
            break
        fi
    done
    echo $verify
}
while read i; do
 
    remoteIp=$(echo $i | awk '{print $2}')
    requestNumber=$(echo $i | awk '{print $1}')
 
        if [ $requestNumber -ge $maxRequestAccept ];then
            if [ $(funcExceptions $remoteIp) -eq 0 ];then
                 echo "IP de excecao: $remoteIp" >> $logResulted 
             else
                 iptables -I INPUT -s $remoteIp -j DROP
                 echo "IP: $remoteIp bloqueado! $requestNumber conexoes." >> $logResulted
             fi
        fi
    percentageProgress=$(( $(( indexRegister=indexRegister+1 ))*100/$totalRegister ))
    clear && echo "$percentageProgress% de registros analisados do total de $totalRegister..."
    echo "Resultado do processo em $logResulted"
 
done < $tmpFileAnalyze
echo "Relatorio finalizado em $(date +%d/%m/%Y-%H:%M:%S)" >> $logResulted
 
# Marcelo Viana
# AMDG