<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>segurança &#8211; Rafael Bernard Araujo</title>
	<atom:link href="https://rafael.bernard-araujo.com/tag/seguranca/feed" rel="self" type="application/rss+xml" />
	<link>https://rafael.bernard-araujo.com</link>
	<description>desenvolvendo... while(!success){  try(); }</description>
	<lastBuildDate>Mon, 05 May 2025 23:46:36 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">21941730</site>	<item>
		<title>Tropeçando 86</title>
		<link>https://rafael.bernard-araujo.com/tropecando-86.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-86.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 20:13:43 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=1310</guid>

					<description><![CDATA[Snyk Use Open Source. Stay Secure. A developer-first solution that automates finding &#38; 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. &#160; How to Write a Git Commit Message Why good [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://snyk.io/" target="_blank" rel="noopener noreferrer">Snyk</a></p>
<blockquote><p>Use Open Source. Stay Secure.</p>
<p>A developer-first solution that automates finding &amp; fixing vulnerabilities in your dependencies</p></blockquote>
<p><a href="https://web.archive.org/web/20191223122045/http://verraes.net:80/2015/12/reading-list/" target="_blank" rel="noopener noreferrer">Reading List - by Mathias Verraes</a></p>
<p><a href="http://verraes.net/2016/04/code-reviews-and-blame-culture/" target="_blank" rel="noopener noreferrer">Code Reviews and Blame Culture</a></p>
<blockquote><p>A common belief is that gated reviews lead to blaming individuals. The opposite can be true.</p></blockquote>
<p>&nbsp;</p>
<p><a href="https://chris.beams.io/posts/git-commit/" rel="noopener noreferrer" target="_blank">How to Write a Git Commit Message</a></p>
<blockquote><p>Why good commit messages matter</p></blockquote>
<p><a href="https://blog.shadowhand.me/better-commits-with-static-review/" rel="noopener noreferrer" target="_blank">Better Commits with Static Review</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-86.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1310</post-id>	</item>
		<item>
		<title>Tropeçando 81</title>
		<link>https://rafael.bernard-araujo.com/tropecando-81.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-81.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 06 Jun 2018 15:26:27 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=1258</guid>

					<description><![CDATA[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 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://letsencrypt.org/2017/10/17/acme-support-in-apache-httpd.html" target="_blank" rel="noopener">ACME Support in Apache HTTP Server Project</a></p>
<blockquote><p>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.</p></blockquote>
<p><a href="http://www.craigkerstiens.com/2018/01/31/postgres-hidden-gems/" target="_blank" rel="noopener">Postgres Hidden Gems</a></p>
<blockquote><p>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.</p></blockquote>
<p><a href="https://why-upgrade.depesz.com" target="_blank" rel="noopener">Why upgrade PostgreSQL?</a></p>
<blockquote><p>Usage should be simple – pick from which version you want to upgrade, to which version you want to upgrade, and press gives me… button.</p></blockquote>
<p><a href="https://blog.cloudflare.com/dns-resolver-1-1-1-1/" target="_blank" rel="noopener">Introducing DNS Resolver, 1.1.1.1 (not a joke)</a></p>
<blockquote><p>Cloudflare’s mission is to help build a better Internet and today we are releasing our DNS resolver, <a href="https://1.1.1.1/" target="_blank" rel="noopener">1.1.1.1</a> - 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.</p></blockquote>
<p><a href="https://severalnines.com/blog/my-favorite-postgresql-queries-and-why-they-matter" target="_blank" rel="noopener">My Favorite PostgreSQL Queries and Why They Matter</a></p>
<blockquote><p>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.</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-81.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1258</post-id>	</item>
		<item>
		<title>Tropeçando 71</title>
		<link>https://rafael.bernard-araujo.com/tropecando-71.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-71.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 20 Jan 2016 19:25:06 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vpn]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=1169</guid>

					<description><![CDATA[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 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://bonesmoses.org/2015/12/04/pg-phriday-displaced-durability/" target="_blank" rel="noopener noreferrer">PG Phriday: Displaced Durability</a></p>
<blockquote><p>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 <span class="code">UNLOGGED</span>? Ainda mais porque pode-se evitar usar recursos do servidor desnecessariamente.</p></blockquote>
<p><a href="http://peter.eisentraut.org/blog/2015/12/07/check-your-pg-dump-compression-levels" target="_blank" rel="noopener noreferrer">Check your pg_dump compression levels</a></p>
<blockquote><p>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.</p></blockquote>
<p><a href="https://web.archive.org/web/20160517185740/http://techarena51.com:80/index.php/how-to-install-an-opensource-vpn-server-on-linux/" target="_blank" rel="noopener noreferrer">How to install an Opensource VPN Server on Linux</a></p>
<blockquote><p>Instalação de VPN própria para assegurar o controle do tráfego em conexões.</p></blockquote>
<p><a href="http://www.phpit.com.br/artigos/filtrando-e-validando-dados-no-php-com-filter_var.phpit" target="_blank" rel="noopener noreferrer">Filtrando e validando dados no PHP com filter_var()</a></p>
<blockquote><p>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().</p></blockquote>
<p><a href="http://www.edivaldobrito.com.br/como-instalar-o-ffmpeg-no-ubuntu/" target="_blank" rel="noopener noreferrer">FFmpeg no Ubuntu: veja como instalar esse pacote no 14.04/14.10 via repositório</a></p>
<p><a href="https://web.archive.org/web/20160617002820/http://savepoint.blog.br/trabalhando-com-logs-no-postgresql/" target="_blank" rel="noopener noreferrer">Trabalhando com logs no PostgreSQL</a></p>
<blockquote><p>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.</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-71.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1169</post-id>	</item>
		<item>
		<title>Tropeçando 68</title>
		<link>https://rafael.bernard-araujo.com/tropecando-68.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-68.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 26 Aug 2015 17:58:14 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[linha de comando]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=1144</guid>

					<description><![CDATA[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. A arte da linha de comando 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 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://bonesmoses.org/2015/06/19/pg-phriday-10-ways-to-ruin-performance-functionally-bankrupt/" target="_blank" rel="noopener">PG Phriday: 10 Ways to Ruin Performance: Functionally Bankrupt</a></p>
<blockquote><p>O uso inadequado de funções em consultas e índices e que arruinam a performance do banco.</p></blockquote>
<p><a href="https://github.com/jlevy/the-art-of-command-line/blob/master/README-pt.md" target="_blank" rel="noopener">A arte da linha de comando</a></p>
<blockquote><p>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.</p></blockquote>
<p><a href="http://mindspill.net/computing/linux-notes/verify-that-a-network-connection-is-secure/" target="_blank" rel="noopener">Verify that a network connection is secure</a></p>
<p style="padding-left: 30px;">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.</p>
<p><a href="http://davidwalsh.name/essential-javascript-functions" target="_blank" rel="noopener">7 Essential JavaScript Functions</a></p>
<blockquote><p>Funções JavaScript utilíssimas: debounce, poll, once, getAbsoluteURL, isNative, insertRule, matchesSelector</p></blockquote>
<p><a href="http://bonesmoses.org/2015/08/14/pg-phriday-partitioning-candidates/" target="_blank" rel="noopener">PG Phriday: Partitioning Candidates</a></p>
<blockquote><p>Entendendo quando tabelas são boas candidatas ao particionamento</p></blockquote>
<p><a href="https://security.stackexchange.com/questions/17979/is-sending-password-to-user-email-secure" target="_blank" rel="noopener">Is sending password to user email secure?</a></p>
<p><a href="http://elcio.com.br/salvando-diff-em-html/" target="_blank" rel="noopener">Salvando diff em HTML</a></p>
<p><a href="http://bonesmoses.org/2015/09/11/pg-phriday-dealing-with-table-bloating/" target="_blank" rel="noopener">PG Phriday: Dealing With Table Bloating</a></p>
<p><a href="http://imasters.com.br/front-end/menu-slide-down-com-seletores-avancados/" target="_blank" rel="noopener">Menu slide-down com seletores avançados</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-68.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1144</post-id>	</item>
		<item>
		<title>Tropeçando 60</title>
		<link>https://rafael.bernard-araujo.com/tropecando-60.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-60.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 09 Jul 2014 18:30:53 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[injeção de sql]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=1094</guid>

					<description><![CDATA[CSS Message Boxes for different message types Add missing wpsql_errno in PG4WP plugin 15 fatos sobre programação que você provavelmente não sabia Validação de formulários com HTML5 SQL Injection Cheat Sheet]]></description>
										<content:encoded><![CDATA[<p><a href="https://web.archive.org/web/20180517062808/http://www.jankoatwarpspeed.com/css-message-boxes-for-different-message-types/" target="_blank" rel="noopener">CSS Message Boxes for different message types</a></p>
<p><a href="http://vitoriodelage.wordpress.com/2014/06/06/add-missing-wpsql_errno-in-pg4wp-plugin/" target="_blank" rel="noopener">Add missing wpsql_errno in PG4WP plugin</a></p>
<p><a href="https://web.archive.org/web/20210115204206/http://pichiliani.com.br/15-fatos-sobre-programacao-que-voce-provavelmente-nao-sabia/" title="15 fatos sobre programação que você provavelmente não sabia" target="_blank" rel="noopener">15 fatos sobre programação que você provavelmente não sabia</a></p>
<p><a href="https://productoversee.com/validacao-de-formularios-com-html5/" title="Validação de formulários com HTML5" target="_blank" rel="noopener">Validação de formulários com HTML5</a></p>
<p><a href="https://web.archive.org/web/20160317101914/http://ferruh.mavituna.com:80/sql-injection-cheatsheet-oku" title="SQL Injection Cheat Sheet" target="_blank" rel="noopener">SQL Injection Cheat Sheet</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-60.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1094</post-id>	</item>
		<item>
		<title>Tropeçando 52</title>
		<link>https://rafael.bernard-araujo.com/tropecando-52.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-52.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 08 Aug 2012 02:35:20 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=1007</guid>

					<description><![CDATA[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 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a title="Generating Random Data Via Sql" href="http://momjian.us/main/blogs/pgblog/2012.html#July_24_2012">Generating Random Data Via Sql</a></p>
<blockquote><p>Geração de dados aleatórios em PostgreSQL</p></blockquote>
<p><a title="10 Ways to Generate a Random Password from the Command Line" href="http://www.howtogeek.com/howto/30184/10-ways-to-generate-a-random-password-from-the-command-line/">10 Ways to Generate a Random Password from the Command Line</a></p>
<p><a title="Mascara campo de telefone em javascript com regex – Nono dígito – Telefones São Paulo" href="http://wbruno.com.br/expressao-regular/mascara-campo-de-telefone-em-javascript-com-regex-nono-digito-telefones-sao-paulo/">Mascara campo de telefone em javascript com regex – Nono dígito – Telefones São Paulo</a></p>
<p><a title="Quick FAQs on input[type=date] in Google Chrome" href="http://updates.html5rocks.com/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome">Quick FAQs on input[type=date] in Google Chrome</a></p>
<p><a title="Boas práticas para E-mail Marketing" href="http://tableless.com.br/boas-praticas-para-e-mail-marketing/">Boas práticas para E-mail Marketing</a></p>
<p><a title="How to get some information about PostgreSQL structure (Part 2)" href="http://golden13.blogspot.com.br/2012/08/how-to-get-some-information-about_7.html">How to get some information about PostgreSQL structure (Part 2)</a></p>
<blockquote><p>Consultas úteis para obter a estrutura do PostgreSQL: tabelas, visões, esquemas, chaves, usuários etc.</p></blockquote>
<p><a title="Descompactação de arquivos comprimidos - .gz, .zip, .rar, .bz2, tgz, .tar.gz" href="http://www.dicas-l.com.br/arquivo/descompactacao_de_arquivos_comprimidos_.gz_.zip_.rar_.bz2_tgz_.tar.gz.php">Descompactação de arquivos comprimidos - .gz, .zip, .rar, .bz2, tgz, .tar.gz</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-52.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1007</post-id>	</item>
		<item>
		<title>Tropeçando 50</title>
		<link>https://rafael.bernard-araujo.com/tropecando-50.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-50.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Fri, 11 May 2012 00:37:17 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[vídeo]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=993</guid>

					<description><![CDATA[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 jQuery File Upload Demo How to Create a Fast Hover Slideshow with CSS3 &#124; Codrops [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://jansouza.com/2012/04/26/adcionando-legendas-em-videos-mkv-no-linux/">Adcionando legendas em videos mkv no Linux « Jan Souza – my Projects</a></p>
<p><a href="http://www.picmonkey.com/" title="PicMonkey">PicMonkey - Photo Editing Made of Win</a></p>
<blockquote><p>
Free online photo editor
</p></blockquote>
<p><a href="https://www.ubuntudicas.com.br/2012/06/editando-arquivos-em-pdf-no-ubuntu/" title="Editando">Editando arquivos em PDF no Ubuntu</a></p>
<p><a href="https://web.archive.org/web/20120616060718/https://www.ibm.com/developerworks/mydeveloperworks/blogs/752a690f-8e93-4948-b7a3-c060117e8665/entry/be-a-ba_do_gpg_parte_1_crie_sua_chave_hoje_mesmo?lang=pt_br" title="Bê-a-bá">Bê-a-bá do GPG, parte 1: crie sua chave hoje mesmo </a></p>
<p><a href="https://blueimp.github.io/jQuery-File-Upload/" title="jQuery">jQuery File Upload Demo</a></p>
<p><a href="https://tympanus.net/codrops/2012/05/09/how-to-create-a-fast-hover-slideshow-with-css3/" title="How">How to Create a Fast Hover Slideshow with CSS3 | Codrops</a></p>
<p><a href="https://web.archive.org/web/20210122133615/http://www.tidbits.com.br/desenhando-setas-no-html-sem-usar-imagem-cross-browser" title="»">» Desenhando setas no HTML sem usar imagem (cross browser)</a></p>
<p><a href="https://www.canva.com/pt_br/">Canva - montagens de fotos</a></p>
<blockquote><p>
Editor para criação de montagem de fotos on-line.
</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-50.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">993</post-id>	</item>
		<item>
		<title>Segurança no PHP II</title>
		<link>https://rafael.bernard-araujo.com/seguranca-no-php-ii.php</link>
					<comments>https://rafael.bernard-araujo.com/seguranca-no-php-ii.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Fri, 16 Sep 2011 05:06:55 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=846</guid>

					<description><![CDATA[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, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Requisito 4: Sem erros para o usuário</strong></p>
<p>Falaremos aqui de outro ponto importantíssimo na questão de segurança que é freqüentemente ignorado pelos desenvolvedores: as mensagens de erro.</p>
<p>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 &quot;entrar em produção&quot;, torna-se imperativo que o usuário não visualize mensagens de erro.</p>
<p>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:</p>
<pre><code class="language-sh">Warning: mysql_connect() [function.mysql-connect]:
Access denied for user &#039;foo&#039;@&#039;localhost&#039; (using password: YES)
in /usr/local/apache/htdocs/script.php on line 2</code></pre>
<p>Note, através das partes destacadas, que esta mensagem me informa:</p>
<ol>
<li>O tipo de RDBMS: mysql</li>
<li>O usuário de conexão com a base: foo</li>
<li>Que este usuário está tentando uma conexão de dentro do servidor: localhost</li>
<li>O caminho absoluto da raiz web: /usr/local/apache/htdocs</li>
<li>O nome do script: script.php</li>
</ol>
<p>É 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:</p>
<p>Exemplo:</p>
<p><code>display_errors = Off<br />
log_errors = On<br />
error_log = /log/php_errors.log<br />
</code><br />
<strong>Requisito #5: Esconda do servidor web o que ele não precisa acessar</strong></p>
<p>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?</p>
<p>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?</p>
<p>Para esclarecermos o problema, vamos definir 3 coisas:</p>
<ol>
<li>minha raiz web é: /usr/local/apache/htdocs</li>
<li>meu arquivo de configuração fica localizado em /usr/local/htdocs/config/config.php</li>
<li>este é um código típico que usa este arquivo:</li>
</ol>
<p><code>require_once(&quot;/urs/local/htdocs/config/config.php&quot;);<br />
/<em> bla bla bla </em>/<br />
</code><br />
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.</p>
<p>Outro problema é que se arquivo fica desnecessariamente exposto, afinal de contas basta eu abrir um navegador e digitar:</p>
<pre><code>http://www.meusite.com.br/config/config.php</code></pre>
<p>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.</p>
<p>A solução é simples: movemos o arquivo para fora da raiz web:</p>
<p>/usr/local/config/config.php</p>
<p>E depois apenas acertamos as permissões e corrigimos nosso código:</p>
<p><code>require_once(&quot;/urs/local/config/config.php&quot;);<br />
/<em> bla bla bla </em>/<br />
</code><br />
A partir de agora nosso arquivo de configuração só pode ser lido por quem precisa dele: o interpretador PHP.</p>
<p><strong>Requisito #6: Use criptografia</strong></p>
<p>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.</p>
<p>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?</p>
<p>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.</p>
<p>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 <code>mcrypt</code>.</p>
<p>Os <em>hashes</em> 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 &quot;quebrado&quot; por um pesquisador chinês.</p>
<p><strong>Conclusão</strong></p>
<p>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.</p>
<p>É 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.</p>
<p>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.</p>
<p><strong>Referências e links sugeridos</strong></p>
<p>[PHP Security Consortium] - <a class="extlink" href="https://web.archive.org/web/20210811202433/https://phpsec.org/" target="_blank" rel="noopener"><a href="http://phpsec.org/"><a href="http://phpsec.org/">http://phpsec.org/</a></a></a></p>
<blockquote><p>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.</p></blockquote>
<p><a title="Segurança no PHP" href="http://rafael.bernard-araujo.com/seguranca-no-php.php">Parte I</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/seguranca-no-php-ii.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">846</post-id>	</item>
		<item>
		<title>Chaves seguras</title>
		<link>https://rafael.bernard-araujo.com/chaves-seguras.php</link>
					<comments>https://rafael.bernard-araujo.com/chaves-seguras.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Tue, 02 Aug 2011 18:05:19 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[encriptação]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=801</guid>

					<description><![CDATA[Dependemos da encriptação para manter nossos dados seguros, mas isto significa ter várias chaves e senhas que devemos nos preocupar. Uma chave GPG tem uma senha para protegê-lo, mas e as chaves do seu sistema de arquivos ou chaves de autenticação SSH? Manter cópias em dispositivos USB parecem uma boa idéia até que você perde [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Dependemos da encriptação para manter nossos dados seguros, mas isto significa ter várias chaves e senhas que devemos nos preocupar. Uma chave GPG tem uma senha para protegê-lo, mas e as chaves do seu sistema de arquivos ou chaves de autenticação SSH? Manter cópias em dispositivos USB parecem uma boa idéia até que você perde o dispositivo e todas as suas chaves se tornam de domínio público. Até mesmo a chave GPG não fica seguro já que é óbvio que ela significa e a senha pode ser quebrada com ataque de dicionário.</p>
<p>Um arquivo encriptado dos seus dados mais sensíveis tem inúmeras vantagens: tudo fica protegido com uma senha (adicionando uma segunda camada de encriptação no caso de uma chave GPG) e disfarça o conteúdo do arquivo. Alguém que encontre o seu dispositivo USB encontraria dados sem conseguir identificar o significado do seu conteúdo. O Ccrypt (<a href="http://ccrypt.sourceforge.net">http://ccrypt.sourceforge.net</a>) é uma boa opção para fazer isso, pois possui uma encriptação forte e pode ser usado para encriptar fluxos tar, como em</p>
<pre><code class="language-sh">tar -c file1 file2... | ccencrypt &gt;stuff</code></pre>
<p>e extrair com</p>
<pre class="bash" style="">ccdecrypt <span style="color: rgb(0, 0, 0); font-weight: bold;">&lt;</span>stuff <span style="color: rgb(0, 0, 0); font-weight: bold;">|</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">tar</span> x</pre>
<p>Se você realmente quer ocultar seus dados, use o Steghide (<a href="http://steghide.sourceforge.net">http://steghide.sourceforge.net</a>) para esconder os dados com outro arquivos, como uma foto ou arquivo de música</p>
<p>If you really want to hide your data, use Steghide (<a href="http://steghide.sourceforge.net">http://steghide.sourceforge.net</a>) to hide the data within another file, such as a photo or music file</p>
<pre class="bash" style="">steghide embed <span style="color: rgb(102, 0, 51);">--embedfile</span> stuff <span style="color: rgb(102, 0, 51);">--coverfile</span> img_1416.jpg</pre>
<p>e extrair com</p>
<pre class="bash" style="">steghide extract <span style="color: rgb(102, 0, 51);">--stegofile</span> img_1416.jpg</pre>
<p>Mais em <a title="Truques de linha de comando" href="http://rafael.bernard-araujo.com/truques-de-linha-de-comando.php">Truques de linha de comando</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/chaves-seguras.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">801</post-id>	</item>
		<item>
		<title>SSH sem senha</title>
		<link>https://rafael.bernard-araujo.com/ssh-sem-senha.php</link>
					<comments>https://rafael.bernard-araujo.com/ssh-sem-senha.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 27 Jan 2010 16:53:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=461</guid>

					<description><![CDATA[Usar SSH para conectar a um computador remoto é conveniente, mas há algumas desvantagens. Uma delas é que você precisa digitar a senha a cada vez que você conecta, o que é incômodo num terminal interativo mas inaceitável em um script, pois você precisa que a senha esteja no script. O outro é que uma [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Usar SSH para conectar a um computador remoto é conveniente, mas há algumas desvantagens. Uma delas é que você precisa digitar a senha a cada vez que você conecta, o que é incômodo num terminal interativo mas inaceitável em um <em>script</em>, pois você precisa que a senha esteja no <em>script</em>. O outro é que uma senha pode ser quebrada. Uma senha longa, aleatório e complexa ajuda, mas torna as autenticações interativas ainda mais incovenientes. É mais seguro ativar o SSH para funcionar sem senhas de uma vez. Primeiro, você precisa ativar um par de chaves para o SSH usando <code>ssh-keygen</code> como este para gerar chaves RSA (mude o argumento para <code>dsa</code> em chaves DSA).</p>
<pre class="command">ssh-keygen -t rsa</pre>
<p>Serão criados dois arquivos em <code>~/.ssh</code>, <code>id_rsa</code> (ou <code>id_dsa</code>) com sua chave privada e <code>id_rsa.pub</code> com a sua chave pública. Copie a chave pública para o computador remoto e adicione-a na lista de chaves autorizadas com</p>
<pre class="command">cat id_rsa.pub >>~/.ssh/authorized_keys</pre>
<p>Agora você pode sair da sessão SSH e iniciá-la novamente. Você não será solicitado a entrar com senha, embora se relacionar uma frase-senha para a chave você será solicitado a digitá-la. Repita isso para cada usuário e cada computador remoto. Você pode fazer isto de maneira ainda mais segura ao adicionar</p>
<pre class="command">PasswordAuthentication no</pre>
<p>a <code>/etc/ssh/sshd_config</code>. O SSH passará a recusar todas as conexões sem uma chave, tornando a quebra de senhas impossível.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/ssh-sem-senha.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">461</post-id>	</item>
	</channel>
</rss>
