<?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>Ronaldo Richieri &#187; Dicas de Desenvolvimento</title>
	<atom:link href="http://www.richieri.com/category/tecnologia/software-livre/dicas-de-desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richieri.com</link>
	<description>Colaboração, software livre, OTRS, cultura popular e forró!</description>
	<lastBuildDate>Mon, 06 May 2013 15:11:53 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>(English) A small Web Hosting with OpenPanel + Ubuntu Server 10.04 LTS + some tricks</title>
		<link>http://www.richieri.com/2011/10/26/english-a-small-web-hosting-with-openpanel-ubuntu-server-10-04-lts-some-tricks/</link>
		<comments>http://www.richieri.com/2011/10/26/english-a-small-web-hosting-with-openpanel-ubuntu-server-10-04-lts-some-tricks/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 13:28:01 +0000</pubDate>
		<dc:creator>richieri</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Dicas de Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[10.04 lts]]></category>
		<category><![CDATA[apache2-mpm-itk]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[openpanel]]></category>
		<category><![CDATA[ubuntu server]]></category>
		<category><![CDATA[virtual hosts]]></category>

		<guid isPermaLink="false">http://www.richieri.com/?p=1390</guid>
		<description><![CDATA[Desculpe-nos, mas este texto esta apenas disponível em English.]]></description>
				<content:encoded><![CDATA[<p>Desculpe-nos, mas este texto esta apenas disponível em <a href="http://www.richieri.com/en/category/tecnologia/software-livre/dicas-de-desenvolvimento/feed/">English</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richieri.com/2011/10/26/english-a-small-web-hosting-with-openpanel-ubuntu-server-10-04-lts-some-tricks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Removendo Virus (malware) do WordPress e protegendo seu blog</title>
		<link>http://www.richieri.com/2011/09/01/removendo-virus-malware-do-wordpress-e-protegendo-seu-blog/</link>
		<comments>http://www.richieri.com/2011/09/01/removendo-virus-malware-do-wordpress-e-protegendo-seu-blog/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 00:25:39 +0000</pubDate>
		<dc:creator>richieri</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Dicas de Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[antivirus]]></category>
		<category><![CDATA[badware]]></category>
		<category><![CDATA[cleaning]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress-counter]]></category>

		<guid isPermaLink="false">http://www.richieri.com/?p=1350</guid>
		<description><![CDATA[Note: não me responsabilizo por danos causados em sua instalação. Utilize essas dicas por sua própria conta e risco Estes dias tive dois sites wordpress infectados por malwares! Penei um pouco pra limpar o site e resolvi compartilhar aqui as dicas que fui juntando pelo caminho. Basicamente, os virus se criam um &#8220;backdoor&#8221;  se aproveitando [...]]]></description>
				<content:encoded><![CDATA[<p><em>Note: não me responsabilizo por danos causados em sua instalação. Utilize essas dicas por sua própria conta e risco <img src='http://www.richieri.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>Estes dias tive dois sites wordpress infectados por malwares! Penei um pouco pra limpar o site e resolvi compartilhar aqui as dicas que fui juntando pelo caminho.</p>
<p>Basicamente, os virus se criam um &#8220;backdoor&#8221;  se aproveitando de alguma falha de segurança ou bug em sua instalação. Com esse backdoor criado, o virus tem acesso direto ao seu site mesmo após a correção do bug ou atualização do sistema. É como se o virus tivesse criado uma conta de ssh em seu servidor e pudesse executar praticamente qualquer comando lá dentro.</p>
<p>Em um dos casos, o bug que permitiu a instalação do virus estava em um tema que utilizava uma biblioteca chamada timthumb.php. Descobri <a href="http://blog.sucuri.net/2011/08/timthumb-php-security-vulnerability-just-the-tip-of-the-iceberg.html" target="_blank">neste link</a> a falha que esse arquivo continha e segui os passos descritos lá para resolver o problema. Este virus se instalava através do timthumb.php e criava um backdoor. Através do backdoor, outros virus se instalaram no site. Corrigi o arquivo timthumb.php para remover a possibilidade de uma nova invasão.</p>
<p>Estes virus por sua vez, inseriam um iframe na home page do site, fazendo com que o visitante fosse redirecionado para um site com código malicioso. No meu caso, era um iframe para um site chamado wordpress-counter.com</p>
<p>Tive então que remover backdoor antes de remover o gerador de iframe, pois sempre que removia o iframe em si, o mesmo se instaurava novamente após 15 minutos através do backdoor.</p>
<p>Segui as dicas <a href="http://cantonbecker.com/work/musings/2009/how-to-search-for-backdoors-in-a-hacked-wordpress-site/" target="_blank">deste post</a> e descobri o backdoor no arquivo wp-config.php. Após o fim do código tradicional do WordPress haviam cerca de 100 linhas em branco e, em seguida, o código nocivo que permitia a executação de scripts php enviados por REQUESTs.</p>
<p>Depois, segui as dicas <a href="http://blog.unmaskparasites.com/2011/03/02/versatile-cc-attacks/" target="_blank">deste outro post</a>, para eliminar os geradores de iframe.</p>
<p>Finalmente, fiz um congelamento dos arquivos da minha instalação do WordPress. Para isso, acessei a raiz do site através do SSH e realizei os passos abaixo (note que isto impedirá você de atualizar automaticamente o WordPress para versões mais recentes pelo Dashboard):</p>
<p>Para proteger pastas:</p>
<pre>find . -type d -exec chmod 755 {} \;</pre>
<p>Para proteger arquivos:</p>
<pre>find . -type f -exec chmod 644 {} \;</pre>
<p>Para impedir que outros usuários enxerguem os dados de seu banco de dados, o que é possível em algumas hospedagens compartilhadas:</p>
<pre>chmod 750 wp-config.php</pre>
<p>Para impedir que novos ataques modifiquem qualquer arquivo no seu sistema (menos arquivos de plugins e temas):</p>
<pre>
chmod u-w * -R
chmod u+w wp-content -R</pre>
<p><strong>Referencias</strong></p>
<p><a href="http://blog.sucuri.net/2011/08/timthumb-php-security-vulnerability-just-the-tip-of-the-iceberg.html" target="_blank">http://blog.sucuri.net/2011/08/timthumb-php-security-vulnerability-just-the-tip-of-the-iceberg.html</a><br />
<a href="http://markmaunder.com/2011/08/01/zero-day-vulnerability-in-many-wordpress-themes/" target="_blank">http://markmaunder.com/2011/08/01/zero-day-vulnerability-in-many-wordpress-themes/</a><br />
<a href="http://cantonbecker.com/work/musings/2009/how-to-search-for-backdoors-in-a-hacked-wordpress-site/" target="_blank">http://cantonbecker.com/work/musings/2009/how-to-search-for-backdoors-in-a-hacked-wordpress-site/</a><br />
<a href="http://blog.unmaskparasites.com/2011/03/02/versatile-cc-attacks/" target="_blank">http://blog.unmaskparasites.com/2011/03/02/versatile-cc-attacks/</a><br />
<a href="http://codex.wordpress.org/Hardening_WordPress" target="_blank">http://codex.wordpress.org/Hardening_WordPress</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.richieri.com/2011/09/01/removendo-virus-malware-do-wordpress-e-protegendo-seu-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando seu próprio banco de dados de geo localização baseado em IP</title>
		<link>http://www.richieri.com/2011/08/17/criando-seu-proprio-banco-de-dados-de-geo-localizacao-baseado-em-ip/</link>
		<comments>http://www.richieri.com/2011/08/17/criando-seu-proprio-banco-de-dados-de-geo-localizacao-baseado-em-ip/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 19:35:16 +0000</pubDate>
		<dc:creator>richieri</dc:creator>
				<category><![CDATA[Dicas de Desenvolvimento]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[geographic locatlization]]></category>
		<category><![CDATA[geolocalization]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[maxmind]]></category>

		<guid isPermaLink="false">http://www.richieri.com/?p=1331</guid>
		<description><![CDATA[Para aqueles que desejam servir um conteúdo em sua aplicação baseado na localização de seus usuários, uma das alternativas é a localização por IP, quando o visitante não dispoem de um dispositivo GPS. Existem algumas bibliotecas que podemos utilizar para fazer esta pesquisa através de webservices: http://www.geoplugin.com http://www.maxmind.com Estas aplicações no entanto, nem sempre fornecem [...]]]></description>
				<content:encoded><![CDATA[<p>Para aqueles que desejam servir um conteúdo em sua aplicação baseado na localização de seus usuários, uma das alternativas é a localização por IP, quando o visitante não dispoem de um dispositivo GPS.</p>
<p>Existem algumas bibliotecas que podemos utilizar para fazer esta pesquisa através de webservices:</p>
<p><a href="http://www.geoplugin.com" target="_blank">http://www.geoplugin.com</a><br />
<a href="http://www.maxmind.com" target="_blank">http://www.maxmind.com</a></p>
<p>Estas aplicações no entanto, nem sempre fornecem uma informação correta sobre o posicionamento do visitante. Em meu caso, precisei criar uma banco de dados proprio, obtendo grande parte das informações de um BD gratuíto disponibilizado pela MaxMind.</p>
<p>O primeiro passo é fazer o donwload do arquivo CSV e descompacta-lo. Você encontra o arquivo neste link:</p>
<p><a href="http://www.maxmind.com/app/geolitecity" target="_blank">http://www.maxmind.com/app/geolitecity</a></p>
<p>Em seguida, é precisa criar duas tabelas em seu BD. Eu as criei desta forma:</p>
<pre>CREATE TABLE `geo_blocks` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`location_id` INT(10) UNSIGNED NOT NULL,
`ip_start` INT(10) UNSIGNED NOT NULL,
`ip_end` INT(10) UNSIGNED NOT NULL,
`index_geo` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `idx_start` (`ip_start`),
INDEX `idx_end` (`ip_end`),
INDEX `idx_geo` (`index_geo`)
);

CREATE TABLE `geoip`.`location` (
`locId` INT NOT NULL ,
`country` VARCHAR( 100 ) NOT NULL ,
`region` VARCHAR( 100 ) NOT NULL ,
`city` VARCHAR( 150 ) NOT NULL ,
`postalCode` VARCHAR( 20 ) NOT NULL ,
`latitude` VARCHAR( 10 ) NOT NULL ,
`longitude` VARCHAR( 10 ) NOT NULL ,
`metroCode` VARCHAR( 100 ) NOT NULL ,
`areaCode` VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( `locId` )
) ENGINE = MYISAM ;</pre>
<p>Em seguida, vamos importar os arquivos para as tabelas. Também no Mysql, rode os seguintes comandos:</p>
<pre>load data local infile '/caminho/para/o/arquivo/GeoLiteCity_20110802/GeoLiteCity-Blocks.csv'
into table geo_blocks
fields terminated by ',' enclosed by '"'
lines terminated by '\n' ignore 2 lines (ip_start, ip_end, location_id);

load data local infile '/caminho/para/o/arquivo/GeoLiteCity_20110802/GeoLiteCity-Location.csv'
into table location
fields terminated by ',' enclosed by '"'
 lines terminated by '\n' ignore 2 lines (locId,country,region,city,postalCode,latitude,longitude,metroCode,areaCode) ;</pre>
<p>O restante é com você <img src='http://www.richieri.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Veja como trabalhar com essas tabelas, neste tutorial da MaxMind:<br />
<a href="http://www.maxmind.com/app/csv" target="_blank">http://www.maxmind.com/app/csv</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.richieri.com/2011/08/17/criando-seu-proprio-banco-de-dados-de-geo-localizacao-baseado-em-ip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.richieri.com/category/tecnologia/software-livre/dicas-de-desenvolvimento/feed/ ) in 0.85343 seconds, on May 22nd, 2013 at 4:53 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 22nd, 2013 at 5:53 pm UTC -->