Reset à password do Windows a partir do Ubuntu | Ubuntued
Begineers music lessons
Como autenticar no AD com Ubuntu com três comandos | Another Geek Blog
[Dicas-L] Montando dispositivos USB no Virtualbox sem problemas.
Use Open Source. Stay Secure.
A developer-first solution that automates finding & fixing vulnerabilities in your dependencies
Reading List - by Mathias Verraes
Code Reviews and Blame Culture
A common belief is that gated reviews lead to blaming individuals. The opposite can be true.
How to Write a Git Commit Message
Why good commit messages matter
Esta publicação foi originalmente publicada em The convincing Bitcoin scam e-mail extorting you, por Mattias Geniar, em inglês. Mas o alerta vale ser traduzido para o português, tendo você assistido ou não do que a acusação se trata.
Mais uma vez vemos a criatividade de aplicadores de golpe. Fique atento. Fique alerta. A internet é uma terra tão selvagem quando as ruas em que andamos.
Há alguns meses recebi um e-mail que me deixou preocupado por alguns segundos. Parecia assim, e é bem provável que você tenha visto também.
From: Kalie Paci Subject: mattias - UqtX7m It seems that, UqtX7m, is your pass word. You do not know me and you are probably thinking why you are getting this mail, correct? Well, I actually placed a malware on the adult video clips (porn) web-site and guess what, you visited this site to have fun (you know what I mean). While you were watching videos, your browser started operating as a RDP (Remote control Desktop) that has a keylogger which gave me access to your display and also web camera. Immediately after that, my software program collected your entire contacts from your Messenger, FB, and email. What exactly did I do? I created a double-screen video. First part displays the video you were viewing (you have a nice taste lol), and second part displays the recording of your web camera. What should you do? Well, in my opinion, $1900 is a fair price for our little secret. You’ll make the payment through Bitcoin (if you do not know this, search “how to buy bitcoin” in Google). BTC Address: 1MQNUSnquwPM9eQgs7KtjDcQZBfaW7iVge (It is cAsE sensitive, so copy and paste it) Important: You now have one day to make the payment. (I’ve a unique pixel in this message, and right now I know that you have read this email message). If I don’t get the BitCoins, I will send your video recording to all of your contacts including members of your family, colleagues, and many others. Having said that, if I do get paid, I will destroy the video immidiately. If you need evidence, reply with “Yes!” and I definitely will send your video recording to your 11 friends. This is a non-negotiable offer, and so please don’t waste my personal time and yours by responding to this mail.
Se você lê, parece spam - não é?
Bem, o que me preocupou por alguns segundos foi que a linha de assunto e o corpo continham uma senha real que eu usei um tempo atrás: UqtX7m
.
Para receber um email com um - o que parece ser - segredo pessoal no assunto, chama a atenção. É inteligente no sentido de que você se sente violado e envergonhado pelas consequências. Parece legítimo.
Deixe-me dizer claramente: é uma farsa e você não precisa pagar ninguém.
Mencionei pela primeira vez no meu Twitter descrevendo o que parece ser a parte brilhante desse golpe:
Quem quer que esteja executando esse esquema pensou sobre a psicologia do golpe e encontrou o ponto ideal: ele chama sua atenção e deixa você preocupado.
Bem jogado. Mas não se apegue a isso e, mais importante: não pague nada.
Quanto à Combate à pornografia conheça Just1ClickAway. Busque se livrar deste mal.
ACME Support in Apache HTTP Server Project
We’re excited that support for getting and managing TLS certificates via the ACME protocol is coming to the Apache HTTP Server Project (httpd). ACME is the protocol used by Let’s Encrypt, and hopefully other Certificate Authorities in the future. We anticipate this feature will significantly aid the adoption of HTTPS for new and existing websites.
Postgres has a rich set of features, even when working everyday with it you may not discover all it has to offer. In hopes of learning some new features that I didn’t know about myself as well as seeing what small gems people found joy in I tweeted out to see what people came back from. The response was impressive, and rather than have it lost into ether of twitter I’m capturing some of the responses here along with some resources many of the features.
Usage should be simple – pick from which version you want to upgrade, to which version you want to upgrade, and press gives me… button.
Introducing DNS Resolver, 1.1.1.1 (not a joke)
Cloudflare’s mission is to help build a better Internet and today we are releasing our DNS resolver, 1.1.1.1 - a recursive DNS service. With this offering, we’re fixing the foundation of the Internet by building a faster, more secure and privacy-centric public DNS resolver. The DNS resolver, 1.1.1.1, is available publicly for everyone to use - it is the first consumer-focused service Cloudflare has ever released.
My Favorite PostgreSQL Queries and Why They Matter
Below, I present a combination of 8 differing queries or types of queries I have found interesting and engaging to explore, study, learn, or otherwise manipulate data sets.
PG Phriday: Displaced Durability
Há tabelas que possuem dados com os quais você não se importa de perdê-los. São situações de dados transientes, como áreas de dados passageiros, tabelas temporárias persistentes, tabelas com dados crus de importação. Por quê não aproveitar o fato do PostgreSQL oferecer a opção de ser UNLOGGED? Ainda mais porque pode-se evitar usar recursos do servidor desnecessariamente.
Check your pg_dump compression levels
Ao realizar backups do banco PostgreSQL, há muitas situações em que encontramos uma sobrecarga inesperada e o nível de compressão escolhido para fazer o backup pode ter ação direta sobre isso. Como a compressão nem sempre é tão importante, não esquecer este detalhe pode poupar incômodos desnecessários em operações de backup que não as rotineiras.
How to install an Opensource VPN Server on Linux
Instalação de VPN própria para assegurar o controle do tráfego em conexões.
Filtrando e validando dados no PHP com filter_var()
Entrada de dados é uma característica de quase a totalidade dos sistema ou sites. É indispensável, para segurança dos dados, filtrar esta entrada a fim de evitar invasões, roubo de dados ou inconsistência. No PHP, aprenda a fazer isso usando filter_var().
FFmpeg no Ubuntu: veja como instalar esse pacote no 14.04/14.10 via repositório
Trabalhando com logs no PostgreSQL
Dicas de configurações de log em servidores PostgreSQL. As informações contidas em logs são essenciais em muitos problemas e importantes para a saúde da aplicação e do sistema de banco de dados.
PG Phriday: 10 Ways to Ruin Performance: Functionally Bankrupt
O uso inadequado de funções em consultas e índices e que arruinam a performance do banco.
Fluência na linha de comando é uma habilidade muitas vezes negligenciada ou considerada obsoleta, porém ela aumenta sua flexibilidade e produtividade como desenvolvedor de diversas maneiras, sutis ou não. Este texto descreve uma seleção de notas e dicas de uso da linha de comando que me parecem muito uteis, quando usando o Linux. Algumas dicas são elementares, e outras são mais específicas, sofisticadas ou obscuras. Esta página é curta, mas se você souber usar e lembrar todos os items que estão aqui, então você está mandando bem.
Verify that a network connection is secure
Através da captura dos pacotes que trafegam na rede em que você está conectado, verifique se há vulnerabilidades e a possibilidade de desvio das informações quando você está usando protocolos de encriptação.
7 Essential JavaScript Functions
Funções JavaScript utilíssimas: debounce, poll, once, getAbsoluteURL, isNative, insertRule, matchesSelector
PG Phriday: Partitioning Candidates
Entendendo quando tabelas são boas candidatas ao particionamento
Is sending password to user email secure?
Generating Random Data Via Sql
Geração de dados aleatórios em PostgreSQL
10 Ways to Generate a Random Password from the Command Line
Mascara campo de telefone em javascript com regex – Nono dígito – Telefones São Paulo
Quick FAQs on input[type=date] in Google Chrome
Boas práticas para E-mail Marketing
How to get some information about PostgreSQL structure (Part 2)
Consultas úteis para obter a estrutura do PostgreSQL: tabelas, visões, esquemas, chaves, usuários etc.
Descompactação de arquivos comprimidos - .gz, .zip, .rar, .bz2, tgz, .tar.gz
Adcionando legendas em videos mkv no Linux « Jan Souza – my Projects
PicMonkey - Photo Editing Made of Win
Free online photo editor
Editando arquivos em PDF no Ubuntu
Bê-a-bá do GPG, parte 1: crie sua chave hoje mesmo
How to Create a Fast Hover Slideshow with CSS3 | Codrops
» Desenhando setas no HTML sem usar imagem (cross browser)
Editor para criação de montagem de fotos on-line.
Requisito 4: Sem erros para o usuário
Falaremos aqui de outro ponto importantíssimo na questão de segurança que é freqüentemente ignorado pelos desenvolvedores: as mensagens de erro.
As mensagens de erro foram feitas para que o desenvolvedor possa trabalhar de forma mais prática e descobrir o que ele está fazendo de errado. Observem, entretando, que, quando uma aplicação atinge maturidade suficiente para "entrar em produção", torna-se imperativo que o usuário não visualize mensagens de erro.
A razão disso é muito simples: as mensagens de erro freqüentemente trazem informações sensíveis. Observe como exemplo uma típica mensagem de falha de conexão com a base de dados:
Warning: mysql_connect() [function.mysql-connect]:
Access denied for user 'foo'@'localhost' (using password: YES)
in /usr/local/apache/htdocs/script.php on line 2
Note, através das partes destacadas, que esta mensagem me informa:
É por isso que, quando colocamos uma aplicação em produção, ocultamos as mensagens de erro e as gravamos diretamente em um arquivo de log. Isto é muito simples de implementar:
Exemplo:
display_errors = Off
log_errors = On
error_log = /log/php_errors.log
Requisito #5: Esconda do servidor web o que ele não precisa acessar
Quantos de nós não usamos em nossas aplicações um arquivo, tipicamente chamado de config.php ou setup.php, onde guardamos, por exemplo, usuário e senha da base de dados?
Não há nada de errado nisso, mas cuidado: se este arquivo não gera saída de informação em HTML, por que deixá-lo acessível via web?
Para esclarecermos o problema, vamos definir 3 coisas:
require_once("/urs/local/htdocs/config/config.php");
/ bla bla bla /
Observe que o erro neste caso é confundir interpretador PHP e servidor web. O Apache (ou IIS, Xitami etc) não precisa saber onde está este arquivo. Isto é responsabilidade do interpretador.
Outro problema é que se arquivo fica desnecessariamente exposto, afinal de contas basta eu abrir um navegador e digitar:
http://www.meusite.com.br/config/config.php
Não faz sentido. Por mais que você possa argumentar que não há forma de ler o código-fonte deste arquivo, ainda assim, isto não muda o fato de que ele está desnecessariamente exposto.
A solução é simples: movemos o arquivo para fora da raiz web:
/usr/local/config/config.php
E depois apenas acertamos as permissões e corrigimos nosso código:
require_once("/urs/local/config/config.php");
/ bla bla bla /
A partir de agora nosso arquivo de configuração só pode ser lido por quem precisa dele: o interpretador PHP.
Requisito #6: Use criptografia
Dados sigilosos são chamados assim por um motivo. Quando tratamos especificamente de senhas é impressionante a quantidade de aplicações web que gravam senhas em texto puro na base de dados.
Ora, se a senha possui a importância que tem e quem a escolhe é o usuário, por que alguém mais precisa ler essa senha?
Se a senha possui este peso em nossa aplicação, não podemos nos dar o luxo de fazer com que ela trafegue pela aplicação totalmente exposta.
PHP implementa criptografia de várias formas, mas eu sugiro - para quem puder usar, pois exige instalação e configuração extra - a utilização da função mcrypt
.
Os hashes MD5 e SHA-1 são opções válidas, mas o problema é a sua fragilidade: para o MD5 existe até dicionário de dados, enquanto o SHA-1 foi recentemente "quebrado" por um pesquisador chinês.
Conclusão
A implementação de regras básicas de segurança depende apena da boa vontade do desenvolvedor. Você deve ter percebido como a maior parte das soluções aqui apresentadas significam simples mudanças de hábito.
É mais do que tempo de nós, desenvolvedores PHP, deixarmos de lado nossos antigos vícios e começarmos a implementar boas práticas de programação.
Ganha o profissional, ganha a sua aplicação, ganha o seu cliente, ganha o mercado. Só quem perde nessa situação é quem tenta se aproveitar de nossa aplicação.
Referências e links sugeridos
[PHP Security Consortium] - http://phpsec.org/
Er Galvão Abbott trabalha há mais de dez anos com programação de websites e sistemas corporativos com interface web. Autodidata, teve seu primeiro contato com a linguagem HTML em 1995, quando a internet estreava no Brasil. Atualmente, além de lecionar em diversos cursos, tem se dedicado ao desenvolvimento de sistemas baseados na web, tendo nas linguagens PHP, Perl e JavaScript suas principais paixões.