A visualizar arquivo completo com todos os posts do Blog

A equipa do CPanel tem andado ocupada com novas funcionalidades de performance e segurança, uma delas é o suporte a HTTP2 com o Easy Apache 4. Está disponível de forma experimental, mas dos testes que efectuei está bastante estável.

E os sites demoram menos 40% do tempo a carregar!

SR71 Blackbird

Efectuei alguns testes através do Pingdom de forma faseada para obter uma média antes e depois de aplicar o protocolo HTTP/2 na página inicial do Mais Gasolina por efectuar pedidos de vários endereços e ter vários tipos de recursos a serem carregados (CSS, JS, imagens, fontes, etc). No total são feitos 47 pedidos e é descarregado um total de 390kB.

Com HTTP/1.1 a média de carregamento ficou nos 1.26s até todos os conteúdos estarem disponíveis, já com HTTP/2.0 a média ficou nos 758ms, uma diferença considerável, perto de 40% mais rápido.

A instalação é extremamente simples, basta seguir os passos indicados na página onde foi pedida esta funcionalidade e em menos de 2 minutos ter os vossos sites com HTTP/2, presumindo que já têm SSL activo, mas se não têm o CPanel também trata disso.

Depois disso podem consultar os headers a partir do vosso browser ou usar uma ferramenta como HTTP2 Test da KeyCDN para verificar que o vosso site já suporta HTTP/2.

Uma forma de tornar o Apache mais rápido é desactivar o suporte a ficheiros .htaccess. Neste artigo vamos aprender como o fazer, mas sem perder a versatilidade que um .htaccess permite.

Comboio Maglev

Os ficheiros .htaccess permitem definir configurações especificas a um determinado domínio sem ser necessário aceder às configurações do servidor em si. Isto é óptimo para ambientes de alojamento partilhado ou servidores privados com vários websites, permitindo configurações independentes para cada domínio.

Mas esta leitura é lenta, o Apache na sua configuração padrão pode recuar vários directórios à procura de um ficheiro .htaccess e aplicar as suas regras. Isto é feito em cada pedido, mesmo com conteúdo estático. Se desactivarmos esta funcionalidade o Apache fica muito mais rápido.

Desactivar é simples, mas queremos manter as regras do mod_rewrite, mod_expires e afins. Estes são os passos que segui para o fazer num servidor com CPanel, mas existem outras formas de o fazer.

Desactivar o .htaccess

Através do WHM do CPanel se acedermos a Apache Configuration > Include Editor vamos editar o ficheiro post_virtualhost_global.conf onde vamos colocar as nossas configurações. Este ficheiro não é rescrito na actualização do Apache, sendo através do CPanel o método ideal em vez de editar os ficheiros do Virtual Host directamente via SSH.

Neste ficheiro vamos colocar os apontadores para os nossos ficheiros .htaccess

1
2
3
4
5
6
7
8
9
10
11
12
13
# Regras gerais
<Directory "/">
	AllowOverride none
</Directory>

# Regras separadas por directório, por site
<Directory "/home/username/public_html/">
	IncludeOptional /home/username/public_html/.htacces[s]
</Directory>

<Directory "/home/outrousername/public_html/">
	IncludeOptional /home/outrousername/public_html/.htacces[s]
</Directory>

Explicando o código, no directório inicial “/” vamos aplicar as regras comuns a todo o servidor, neste caso remover os indexes das pastas sem ficheiros index e desactivar o .htaccess com o AllowOverride como none.

Depois para cada pasta de cada site que temos vamos criar uma entrada onde colocamos o ficheiro .htaccess.

O ficheiro é incluído sempre dentro de um parâmetro Directory. Assim em caso de erro no ficheiro ou um ataque apenas vamos afectar aquele domínio.

Usa-se o IncludeOptional com um pequeno truque que encontrei no Stack Overflow para que seja verificado um padrão no nome do ficheiro, desta forma se o ficheiro for eventualmente eliminado não ocorrem erros de configuração e o Apache continua a funcionar.

Se pretenderem também podem copiar o conteúdo do ficheiro .htaccess para aqui, mas desta forma o conteúdo fica separado em ficheiros por cada site, torna-se mais fácil a sua gestão e mantém-se a compatibilidade com algumas funcionalidades do CPanel ou scripts como o WordPress.

Porque é mais rápido desta forma?

Ao contrário de um ficheiro .htaccess carregado pela forma convencional, onde as regras são interpretadas e aplicadas sempre que é feito um pedido (mesmo em conteúdo estático), aqui as regras são carregadas e interpretadas quando o Apache inicia, ficando em memória.

Removemos assim o processo de verificar várias pastas à procura de ficheiros .htaccess e a leitura dos mesmos.

Pontos a ter em conta

Desta forma continua a ser possível usar ficheiros .htaccess, mas o modo de funcionamento não é igual.

Como indiquei os ficheiros são lidos quando o Apache arranca, isto quer dizer que podemos remover ou editar estes ficheiros e as novas regras apenas são aplicadas se reiniciarmos o serviço. Dependendo do sistema operativo onde estamos a correr podemos forçar via SSH o carregamento das regras com um reload.

O ano de 2016 chegou ao fim e destacou-se por ser um ano com um grande crescimento nos acessos através de telemóveis em Portugal.

O crescimento foi de tal forma que o número de utilizadores móveis já é superior ao número de utilizadores com desktop / portáteis e continua a subir. O Android já tem quase tanta utilização nos acessos à Web como o Windows.

Estatísticas

 

Browsers
Browsers

O Chrome continua a ganhar terreno, podendo-se tornar no próximo Internet Explorer com uma fatia significativa do mercado. Neste momento 64%.

No caso do Internet Explorer apenas a versão 11 continua com acessos, já as versões do IE10 e IE9 contam com um número inferior a 1000 utilizares, num universo de 200.000.

Novos websites a serem desenvolvidos podem optar por suportar apenas a versão 11 do IE. Ignorar este browser infelizmente ainda não é possível porque conta com 7% do mercado.

Sistemas Operativos
Sistemas Operativos

Os acessos em mobile continua a ser superiores aos em desktop, mas o Windows continua a ser o mais usado, seguido pelo Android. Estes dois sistemas operativos dominam o mercado com mais de 80% dos utilizadores.

Linux continua a cativar poucos utilizadores em desktop e portáteis, tendo uma percentagem de utilização inferior a 0,5% e deixa assim de figurar nas estatísticas. O Windows Phone que tem um número de utilizadores irrisório consegue ter mais do dobro de acessos do que Linux.

Resoluções
Resoluções

Nas resoluções continua o mesmo panorama, 360×640 e 1366×768 são as mais usadas.

As estatísticas aqui apresentadas são provenientes de vários sites com um público alvo generalista. São incluídos os dados de cerca de 200.000 utilizadores únicos baseados em Portugal.
Os dados aqui apresentados podem não corresponder ao público alvo do seu website.

O Mais Gasolina completou 10 anos e como “prenda” fiz uma nova aplicação para Android, que já bem merecia!

App Mais Gasolina

A aplicação é híbrida como tantas outras, e como já era a antiga. Isto permite-me não só poder actualizar dados sem ser necessária uma actualização da aplicação, como aconteceu quando apareceram os combustíveis simples, como tornar mais rápido o desenvolvimento da app por se tratar de tecnologia com a qual estou à vontade.

Uma das falhas da aplicação era não permitir que um utilizador registado no site fizesse login na app para aceder aos favoritos, guardar preferências ou actualizar preços. Outra prioridade para mim era fazer a aplicação rápida e usar pouco tráfego.

O aspecto da app também foi actualizado, passando agora a usar Material Design. Desta forma a aplicação fica com o mesmo aspecto que as restantes e como o Material Design funciona muito à base de cartões ou secções de conteúdo a aplicação fica praticamente idêntica ao site.

Para a localização passou-se a obter de forma aproximada com os dados fornecidos pela rede de telemóvel ou pontos WiFi próximos. É possível que venha a introduzir novamente a localização por GPS para sitios com pouca cobertura de rede, mas sempre como segundo recurso. Esta alteração foi feita para poupar bateria no telemóvel.

Os resultados

Já passaram quase duas semanas e apesar do factor novidade, com os utilizadores a explorar a aplicação, os resultados são positivos. Neste momento cada utilizador da aplicação usa em média 25KB de tráfego a aceder a dados que se encontram no servidor, contra os anteriores 42KB. Excluem-se aqui os logótipos de cada marca que já eram consumidos do mesmo local centralizado.

Ao permitir usar sprites e imagens em SVG existiu uma grande redução de tamanho, garantindo também uma qualidade de imagem superior em ecrãs de alta densidade. E ao utilizar o sistema de cache e minify que desenvolvi consegui reduzir também o tamanho do HTML gerado.

E com o login e registo através da aplicação aumentou o número de novos utilizadores no site, alguns desses que já começaram a actualizar preços pela app.

Se pretenderem podem testar a aplicação, ou se já a têm e ainda não actualizaram, através do Google Play. Se não tiverem um telemóvel Android existem outras opções disponíveis.

É no terceiro trimestre do ano que grande parte dos portugueses está de férias e a utilização de dispositivos móveis subiu de tal forma que ultrapassou o número de acessos através de computador.

Mais de 52% dos acessos foram de dispositivos móveis e por isso passam agora a estar disponíveis nos gráficos também os sistemas operativos e resoluções de telemóveis e tablets.

Estatísticas

 

Browsers
Browsers

Chrome e Safari sobem, como seria de esperar, com o aumento dos acessos em Mobile. O número de utilizadores com o browser Opera (Desktop e Mobile) ficam abaixo de 1%.

O Edge continua a ganhar mercado com a subida de utilizadores com Windows 10. No caso do Internet Explorer, os resistentes que ainda o usam, já estão praticamente todos na versão 11 (mais de 90%). Infelizmente ainda é uma percentagem elevada (7%), espero que em 2017 este browser passe a ser irrelevante.

Sistemas Operativos
Sistemas Operativos

Os acessos em mobile passam os feitos por computador, com o Android a ter uma percentagem de utilização muito próxima do Windows.

A grande novidade em desktop é que o número de utilizadores com Windows 10 subiu e é agora a versão mais utilizada, com 43% dos utilizadores. No caso do Android a maioria dos utilizadores tem a versão KitKat ou superior, sendo as versões KitKat e Marshmallow as mais utilizadas.

Resoluções
Resoluções

Nas resoluções continua o mesmo panorama, 360×640 e 1366×768 são as mais usadas.

Em desktop a maior resolução com uma utilização considerável é 1920×1080, larguras superiores aparecem apenas em casos esporádicos, inferior a 0,02% do total dos cerca de 200.000 utilizadores únicos em que se baseia esta estatística.

As estatísticas aqui apresentadas são provenientes de vários sites com um público alvo generalista. São incluídos os dados de cerca de 200.000 utilizadores únicos baseados em Portugal.
Os dados aqui apresentados podem não corresponder ao público alvo do seu website.

No meu percurso profissional já me passou imenso código mau pelos olhos. Desde sites que não fazem qualquer validação ao que um utilizador insere num formulário à construção de querys que inserem parâmetros vindos directamente da barra de endereços do browser. Um desastre à espera de acontecer.

Mas mesmo com código bem estruturado e com validações podem existir falhas, seja no código ou na configuração do servidor. Felizmente existem aplicações para testar este tipo de vulnerabilidades.

Porta de um cofre

Testei 3 aplicações contra um ambiente de testes criado para o efeito, com uma instalação CPanel e um site com dois formulários de contacto (um deles com Javascript), um formulário de pesquisa, um formulário de login e de registo de utilizador. Foram ainda criadas algumas páginas com conteúdo para permitir passar parâmetros pelo URL e chamadas por AJAX para obter conteúdo adicional.

Não incluí aqui o já conhecido Scan My Server por me parecer estar já desactualizado em relação às novas ofertas do mercado.

Detectify (Pago)

Resultados do Detectify

O Detectify funciona via web e existem servidores próprios para testar as vulnerabilidades nos nossos sites. Este foi de todos o mais completo, verificando até por falhas de segurança na configuração do CPanel e Apache.

Foi também o único que verificou que exista uma firewall instalada que bloqueou o acesso e deu um alerta com os IP’s que devem ser permitidos em whitelist.

O preço à data do artigo é de 30 Eur por mês por cada site sem qualquer limite de número de testes. Para testar existe um trial de 21 dias.

Endereço: https://detectify.com

Tinfoil (Pago)

Resultados do Tinfoil

Tal como o Detectify, o Tinfoil também funciona via web. Aqui os testes não são tão exaustivos, mas foi o melhor a verificar vulnerabilidades nos formulários de email, conseguindo mesmo dar a volta ao formulário onde a submissão era feita apenas por Javascript.

Os resultados dos testes não são tão compreensivos, mas a equipa de suporte é fantástica.

O preço é mais alto, 59 USD para apenas um site com análises mensais e um limite de 500 páginas. O trial é no entanto mais longo, 30 dias.

Endereço: https://www.tinfoilsecurity.com

OWASP Zed Attack Proxy (Grátis)

Resultados do Tinfoil

Gratis mas mais limitado, o ZAP é uma aplicação em Java que corre localmente no nosso computador para testar falhas de segurança da lista da OWASP.

A aplicação não é fácil de usar e ao adicionar o endereço a análise falhava de imediato. O User Agent curiosamente termina com ponto e virgula, estando a ser bloqueado no servidor com o ModSecurity usando regras da Atomicorp já com 2 anos.

Endereço: https://owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

Conclusão

Estas ferramentas são interessantes para encontrar e mitigar algumas falhas de segurança. O Detectify é para mim o que tem os testes mais exaustivos e o ZAP parece-me ser inferior ao já antigo Scan My Server, que também é gratuito, mas ainda assim é melhor que nada.

Para empresas que desenvolvem aplicações para a web ou mesmo para particulares com sites simples estas ferramentas são uma mais valia e permitem detectar possíveis pontos de entrada antes que estes sejam explorados por hackers.

Mas atenção, não é para levar à letra e corrigir todos os avisos que aparecem. Fica este aviso porque trabalhei com alguns gestores de projecto que, por falta de conhecimento, corrigiam tudo o que estes testes online diziam.

Em todas as aplicações testadas existem avisos que podem não fazer sentido. Por exemplo não vamos colocar o header X-Frame-Options como deny se o site é usado dentro de uma frame noutro domínio.

Outras questões como o ficheiro robots.txt, não o removam porque o scanner diz que pode ter informação fidedigna. A ideia é dar a perceber que se existe dentro do robots.txt o caminho /admin para não ser indexado, é fácil saber que existe a pasta /admin para a gestão do site. A acção correcta é remover o endereço do ficheiro e colocar uma meta tag no ficheiro inicial da pasta /admin para não ser indexado.

A versão 58 do CPanel e WHM começou a ser distribuída no canal RELEASE de forma faseada, devendo chegar a toda a gente até ao fim desta semana.

Com esta versão vem uma novidade já esperada, a renovação automática de certificados grátis.

Agência de segurança a espiar

Se não estiveram desligados da tecnologia nos últimos anos sabem certamente que o futuro da web é encriptado. O próprio Google já usa o HTTPS como um sinal de qualidade para os resultados de pesquisa e o novo protocolo HTTP2 só funciona com encriptação em certos browsers (Chrome e Firefox).

Neste momento já existem várias entidades com certificados grátis para a verificação de domínios, sendo a Let’s Encrypt a mais falada do momento. Embora já se encontrassem certificados a menos de 4 Eur por ano, um certificado grátis vai permitir que toda a web possa passar para HTTPS sem custos.

O único problema é que estes certificados têm uma duração limitada de 3 meses e isto obriga a que os processos de renovação sejam automatizados. Não que seja mau, um certificado de curta duração permite teoricamente mais segurança.

Renovação e instalação automática

Com esta nova versão passa a esta disponível a opção Manage AutoSSL. De momento apenas existe disponível como entidade certificadora o CPanel através da Comodo, mas existem planos para incluir também a Let’s Encrypt, já existindo um plugin em fase de testes.

Significa que através do WHM passa a ser tão simples como activar o serviço, escolher as contas onde pretendemos certificados grátis e clicar em Run. Os certificados são gerados, instalados e passam a ser renovados automaticamente.

Deixa de ser necessária a criação de crons para a renovação automática, como fazia com o Let’s Encript, e a partir do CPanel é feita essa gestão.

E porque é isto positivo, se já era possível com algum trabalho ter acesso a certificados grátis? Deixamos de nos preocupar com API’s que estejam sempre a mudar (estou a olhar para ti Let’s Encrypt) uma vez que a equipa do CPanel trata disso. Os utilizadores mais leigos podem também activar SSL sem conhecimentos de bash e gestão de crons. E as empresas que fornecem alojamento partilhado com CPanel podem adicionar aos seus pacotes de alojamento um certificado SSL para o domínio, grátis.

Actualização a 13/08/2016:
Já se encontra disponível o Let’s Encrypt sendo necessário correr um comando por SSH. Mais informações no site do CPanel
 
Copyright © 1985 - 2017 Eduardo Maio. Alguns direitos reservados.
eduardomaio.net - Às vezes mais valia ser Agricultor do que Programador
Ao navegar no blog eduardomaio.net está a concordar com os termos legais e de privacidade.