<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" 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/" version="2.0">
<channel>
	<title>Comments for Wagner Elias - Think Security First</title>
	
	<link>http://wagnerelias.com</link>
	<description>BCP, BIA, DRP, Security Assessment, Risk Assessment, Security Developer</description>
	<lastBuildDate>Sat, 06 Mar 2010 18:13:09 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CommentsForWagnerElias-ThinkSecurityFirst" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="commentsforwagnerelias-thinksecurityfirst" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1031</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Sat, 06 Mar 2010 18:13:09 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1031</guid>
		<description>&lt;a href='#comment-1029' rel="nofollow"&gt;@ideud8ef&lt;/a&gt; - hahaha, maldoso você.

Concordo que o uso de um bom salt é essencial e se for complexo o suficiente vai quase impossível reverter a senha com um hash pré-computado.

Em php eu acho mais interessante um salt hard-coded do que em banco de dados. 

Esta sim é uma boa abordagem:

"Uma abordagem interessante seria armazenar um pre-salt no banco de dados junto com os demais dados do usuário e aplicar um hmac com uma senha contida em arquivo no servidor a esse pre-salt para gerar o salt verdadeiro."&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1031','Elias Wagner'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1031','Elias Wagner','&lt;a href=\'#comment-1029\' rel=\"nofollow\"&gt;@ideud8ef&lt;\/a&gt; - hahaha, maldoso vocÃª.\r\n\r\nConcordo que o uso de um bom salt Ã© essencial e se for complexo o suficiente vai quase impossÃ­vel reverter a senha com um hash prÃ©-computado.\r\n\r\nEm php eu acho mais interessante um salt hard-coded do que em banco de dados. \r\n\r\nEsta sim Ã© uma boa abordagem:\r\n\r\n\"Uma abordagem interessante seria armazenar um pre-salt no banco de dados junto com os demais dados do usuÃ¡rio e aplicar um hmac com uma senha contida em arquivo no servidor a esse pre-salt para gerar o salt verdadeiro.\"'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p><a href='#comment-1029' rel="nofollow">@ideud8ef</a> &#8211; hahaha, maldoso você.</p>
<p>Concordo que o uso de um bom salt é essencial e se for complexo o suficiente vai quase impossível reverter a senha com um hash pré-computado.</p>
<p>Em php eu acho mais interessante um salt hard-coded do que em banco de dados. </p>
<p>Esta sim é uma boa abordagem:</p>
<p>&#8220;Uma abordagem interessante seria armazenar um pre-salt no banco de dados junto com os demais dados do usuário e aplicar um hmac com uma senha contida em arquivo no servidor a esse pre-salt para gerar o salt verdadeiro.&#8221;
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1031','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1031','Elias Wagner','&lt;a href=\'#comment-1029\' rel=\&quot;nofollow\&quot;&gt;@ideud8ef&lt;\/a&gt; - hahaha, maldoso voc&Atilde;&ordf;.\r\n\r\nConcordo que o uso de um bom salt &Atilde;&copy; essencial e se for complexo o suficiente vai quase imposs&Atilde;&shy;vel reverter a senha com um hash pr&Atilde;&copy;-computado.\r\n\r\nEm php eu acho mais interessante um salt hard-coded do que em banco de dados. \r\n\r\nEsta sim &Atilde;&copy; uma boa abordagem:\r\n\r\n\&quot;Uma abordagem interessante seria armazenar um pre-salt no banco de dados junto com os demais dados do usu&Atilde;&iexcl;rio e aplicar um hmac com uma senha contida em arquivo no servidor a esse pre-salt para gerar o salt verdadeiro.\&quot;'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1030</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Sat, 06 Mar 2010 18:07:42 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1030</guid>
		<description />
		<content:encoded><![CDATA[<p><a href='#comment-1028' rel="nofollow">@JoÃ£o</a> &#8211; Este é o ponto João, se armazenar o hash em outro local que não seja junto com o hash fica mais difícil de o cara ter acesso a senha. Ter acesso aos dados é problema sério sem dúvida, não estamos discutindo isto. Mas não é porque eu tive acesso ao banco que devo ter acesso a senha, se este for o raciocínio, para que senha? Coloca a seja em texto claro em tão.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1030','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1030','Elias Wagner','&lt;a href=\'#comment-1028\' rel=\&quot;nofollow\&quot;&gt;@Jo&Atilde;�&Acirc;&pound;o&lt;\/a&gt; - Este &Atilde;&copy; o ponto Jo&Atilde;&pound;o, se armazenar o hash em outro local que n&Atilde;&pound;o seja junto com o hash fica mais dif&Atilde;&shy;cil de o cara ter acesso a senha. Ter acesso aos dados &Atilde;&copy; problema s&Atilde;&copy;rio sem d&Atilde;&ordm;vida, n&Atilde;&pound;o estamos discutindo isto. Mas n&Atilde;&pound;o &Atilde;&copy; porque eu tive acesso ao banco que devo ter acesso a senha, se este for o racioc&Atilde;&shy;nio, para que senha? Coloca a seja em texto claro em t&Atilde;&pound;o.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by ideud8ef</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1029</link>
		<dc:creator>ideud8ef</dc:creator>
		<pubDate>Sat, 06 Mar 2010 17:59:43 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1029</guid>
		<description />
		<content:encoded><![CDATA[<blockquote><p><a href='#comment-1026' rel="nofollow">Originally Posted By Elias Wagner</a>Register Globals habilitado realmente é uma falha grave, inclusive as novas versões já vem desabilitada por default. Mas um código deve ser escrito independente das configurações do ambiente.</p></blockquote>
<p>Se eu ainda escrevesse coisas em PHP, não sentiria dó de colocar um if(ini_get(&#8217;register_globals&#8217;)) die(&#8217;Desligue o register_globals seu admin burro&#8217;); no começo de cada arquivo .php <img src='http://wagnerelias.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>Agora eu discordo que é correto armazenar na mesma tabela junto com o hash, como eu disse um SQLi você pega o hash também</p></blockquote>
<p>Ué, e qual o problema de pegar o hash e o salt com um SQL injection? Se a entropia do salt for boa (salt grande com boa aleatoricidade &#8211; que pode ser gerado com mcrypt por exemplo), a probabilidade de encontrar a senha precomputada é ínfima.</p>
<p>De maneira nenhuma concordo com o texto do seu artigo que diz que uma senha hardcoded é mais segura que uma senha encriptada com esquema de salt só porque ela está em um banco de dados e as estatísticas dizem que ataques SQL injection são mais encontrados que LFI e outros. É preciso utilizar criptografia decente sempre, seja onde a a senha estiver armazenada.</p>
<blockquote><p>O mais adequado nestes casos é armazenar uma string no código ou em um arquivo no server, como o wordpress faz por exemplo. Óbvio que quem configura deve alterar a string padrão.</p></blockquote>
<p>O que você quis dizer com isso? Armazenar um código em um arquivo no servidor e usar como salt? Se for isso, é extremamente inseguro. Um bom salt é um salt aleatório e totalmente independente para cada usuário diferente. Você poderia fazer hash do código do arquivo no servidor com o nome de usuário, mas mesmo assim não seria tão bom quanto um salt aleatório, pois todos os salts estão sendo tirados da mesma função e não são independentes entre si. Formalmente, teríamos uma grande quantidade de informação mútua entre salts diferentes.</p>
<p>Uma abordagem interessante seria armazenar um pre-salt no banco de dados junto com os demais dados do usuário e aplicar um hmac com uma senha contida em arquivo no servidor a esse pre-salt para gerar o salt verdadeiro.</p>
<p>Mas, sinceramente? Acho desnecessário tanta complicação se o salt usado for realmente bom, segundo os critérios que já citei. É mais provável a incidência de uma falha que permita acesso aos arquivos do servidor que a ocorrência de um salt repetido, dependendo do tamanho do salt.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1029','ideud8ef'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1029','ideud8ef','&lt;blockquote&gt;&lt;a href=\'#comment-1026\' rel=\&quot;nofollow\&quot;&gt;Originally Posted By Elias Wagner&lt;\/a&gt;Register Globals habilitado realmente &Atilde;&copy; uma falha grave, inclusive as novas vers&Atilde;&micro;es j&Atilde;&iexcl; vem desabilitada por default. Mas um c&Atilde;&sup3;digo deve ser escrito independente das configura&Atilde;&sect;&Atilde;&micro;es do ambiente.&lt;\/blockquote&gt;\r\n\r\nSe eu ainda escrevesse coisas em PHP, n&Atilde;&pound;o sentiria d&Atilde;&sup3; de colocar um if(ini_get(\'register_globals\')) die(\'Desligue o register_globals seu admin burro\'); no come&Atilde;&sect;o de cada arquivo .php :)\r\n\r\n&lt;blockquote&gt;Agora eu discordo que &Atilde;&copy; correto armazenar na mesma tabela junto com o hash, como eu disse um SQLi voc&Atilde;&ordf; pega o hash tamb&Atilde;&copy;m&lt;\/blockquote&gt;\r\n\r\nU&Atilde;&copy;, e qual o problema de pegar o hash e o salt com um SQL injection? Se a entropia do salt for boa (salt grande com boa aleatoricidade - que pode ser gerado com mcrypt por exemplo), a probabilidade de encontrar a senha precomputada &Atilde;&copy; &Atilde;&shy;nfima.\r\n\r\nDe maneira nenhuma concordo com o texto do seu artigo que diz que uma senha hardcoded &Atilde;&copy; mais segura que uma senha encriptada com esquema de salt s&Atilde;&sup3; porque ela est&Atilde;&iexcl; em um banco de dados e as estat&Atilde;&shy;sticas dizem que ataques SQL injection s&Atilde;&pound;o mais encontrados que LFI e outros. &Atilde;� preciso utilizar criptografia decente sempre, seja onde a a senha estiver armazenada.\r\n\r\n&lt;blockquote&gt;O mais adequado nestes casos &Atilde;&copy; armazenar uma string no c&Atilde;&sup3;digo ou em um arquivo no server, como o wordpress faz por exemplo. &Atilde;�bvio que quem configura deve alterar a string padr&Atilde;&pound;o.&lt;\/blockquote&gt;\r\n\r\nO que voc&Atilde;&ordf; quis dizer com isso? Armazenar um c&Atilde;&sup3;digo em um arquivo no servidor e usar como salt? Se for isso, &Atilde;&copy; extremamente inseguro. Um bom salt &Atilde;&copy; um salt aleat&Atilde;&sup3;rio e totalmente independente para cada usu&Atilde;&iexcl;rio diferente. Voc&Atilde;&ordf; poderia fazer hash do c&Atilde;&sup3;digo do arquivo no servidor com o nome de usu&Atilde;&iexcl;rio, mas mesmo assim n&Atilde;&pound;o seria t&Atilde;&pound;o bom quanto um salt aleat&Atilde;&sup3;rio, pois todos os salts est&Atilde;&pound;o sendo tirados da mesma fun&Atilde;&sect;&Atilde;&pound;o e n&Atilde;&pound;o s&Atilde;&pound;o independentes entre si. Formalmente, ter&Atilde;&shy;amos uma grande quantidade de informa&Atilde;&sect;&Atilde;&pound;o m&Atilde;&ordm;tua entre salts diferentes.\r\n\r\nUma abordagem interessante seria armazenar um pre-salt no banco de dados junto com os demais dados do usu&Atilde;&iexcl;rio e aplicar um hmac com uma senha contida em arquivo no servidor a esse pre-salt para gerar o salt verdadeiro.\r\n\r\nMas, sinceramente? Acho desnecess&Atilde;&iexcl;rio tanta complica&Atilde;&sect;&Atilde;&pound;o se o salt usado for realmente bom, segundo os crit&Atilde;&copy;rios que j&Atilde;&iexcl; citei. &Atilde;� mais prov&Atilde;&iexcl;vel a incid&Atilde;&ordf;ncia de uma falha que permita acesso aos arquivos do servidor que a ocorr&Atilde;&ordf;ncia de um salt repetido, dependendo do tamanho do salt.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by João</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1028</link>
		<dc:creator>João</dc:creator>
		<pubDate>Sat, 06 Mar 2010 17:42:41 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1028</guid>
		<description>Elias, não concordo com a sua afirmação sobre o salt. Inserir o salt juntamente com a senha é uma prática comum. Afinal, se alguém obtém o hash, é porque teve acesso ao banco, e certamente conseguirá obter o salt.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1028','JoÃ£o'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1028','JoÃ£o','Elias, nÃ£o concordo com a sua afirmaÃ§Ã£o sobre o salt. Inserir o salt juntamente com a senha Ã© uma prÃ¡tica comum. Afinal, se alguÃ©m obtÃ©m o hash, Ã© porque teve acesso ao banco, e certamente conseguirÃ¡ obter o salt.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Elias, não concordo com a sua afirmação sobre o salt. Inserir o salt juntamente com a senha é uma prática comum. Afinal, se alguém obtém o hash, é porque teve acesso ao banco, e certamente conseguirá obter o salt.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1028','Jo&Atilde;&pound;o'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1028','Jo&Atilde;&pound;o','Elias, n&Atilde;&pound;o concordo com a sua afirma&Atilde;&sect;&Atilde;&pound;o sobre o salt. Inserir o salt juntamente com a senha &Atilde;&copy; uma pr&Atilde;&iexcl;tica comum. Afinal, se algu&Atilde;&copy;m obt&Atilde;&copy;m o hash, &Atilde;&copy; porque teve acesso ao banco, e certamente conseguir&Atilde;&iexcl; obter o salt.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1027</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Sat, 06 Mar 2010 16:42:04 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1027</guid>
		<description>Nas versões recentes e bem configurado de php não é possível explorar isto, mas como respondi em outro comentário, um código deve ser escrito independente do ambiente e da configuração que ele irá rodar.

Não acho uma boa prática sugerir um variável global em uma situação onde ele só precisa informar o nome do arquivo.

Vou tentar montar o ambiente certo para fazer um exemplo da exploração e publico.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1027','Elias Wagner'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1027','Elias Wagner','Nas versÃµes recentes e bem configurado de php nÃ£o Ã© possÃ­vel explorar isto, mas como respondi em outro comentÃ¡rio, um cÃ³digo deve ser escrito independente do ambiente e da configuraÃ§Ã£o que ele irÃ¡ rodar.\n\nNÃ£o acho uma boa prÃ¡tica sugerir um variÃ¡vel global em uma situaÃ§Ã£o onde ele sÃ³ precisa informar o nome do arquivo.\n\nVou tentar montar o ambiente certo para fazer um exemplo da exploraÃ§Ã£o e publico.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Nas versões recentes e bem configurado de php não é possível explorar isto, mas como respondi em outro comentário, um código deve ser escrito independente do ambiente e da configuração que ele irá rodar.</p>
<p>Não acho uma boa prática sugerir um variável global em uma situação onde ele só precisa informar o nome do arquivo.</p>
<p>Vou tentar montar o ambiente certo para fazer um exemplo da exploração e publico.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1027','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1027','Elias Wagner','Nas vers&Atilde;&micro;es recentes e bem configurado de php n&Atilde;&pound;o &Atilde;&copy; poss&Atilde;&shy;vel explorar isto, mas como respondi em outro coment&Atilde;&iexcl;rio, um c&Atilde;&sup3;digo deve ser escrito independente do ambiente e da configura&Atilde;&sect;&Atilde;&pound;o que ele ir&Atilde;&iexcl; rodar.\n\nN&Atilde;&pound;o acho uma boa pr&Atilde;&iexcl;tica sugerir um vari&Atilde;&iexcl;vel global em uma situa&Atilde;&sect;&Atilde;&pound;o onde ele s&Atilde;&sup3; precisa informar o nome do arquivo.\n\nVou tentar montar o ambiente certo para fazer um exemplo da explora&Atilde;&sect;&Atilde;&pound;o e publico.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1026</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Sat, 06 Mar 2010 16:32:43 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1026</guid>
		<description />
		<content:encoded><![CDATA[<p>Register Globals habilitado realmente é uma falha grave, inclusive as novas versões já vem desabilitada por default. Mas um código deve ser escrito independente das configurações do ambiente.</p>
<p>Para quem acha que não é necessário validar o $_SERVER['SCRIPT_NAME'] segue aqui uma série de falhas explorando SCRIPT_NAME:</p>
<p><a href="http://osvdb.org/show/osvdb/35502" rel="nofollow">http://osvdb.org/show/osvdb/35502</a><br />
<a href="http://drupal.org/node/324875" rel="nofollow">http://drupal.org/node/324875</a><br />
<a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-2431" rel="nofollow">http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-2431</a><br />
<a href="http://www.milw0rm.com/exploits/3816" rel="nofollow">http://www.milw0rm.com/exploits/3816</a><br />
<a href="http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2010-02/msg00385.html" rel="nofollow">http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2010-02/msg00385.html</a></p>
<p>Muito gente acha que por ser recomendado o SCRIPT_NAME como opção mais segura para o PHP_SELF ele não deve ser validado e isto é incorreto.</p>
<p>Sobre o Salt, concordo que além de armazenar errado a entropia do Salt é baixa, previsível. Agora eu discordo que é correto armazenar na mesma tabela junto com o hash, como eu disse um SQLi você pega o hash também, por exemplo um SQLi como este: <a href="http://www.otavioribeiro.com/videos/MSSQL.html" rel="nofollow">http://www.otavioribeiro.com/videos/MSSQL.html</a></p>
<p>O mais adequado nestes casos é armazenar uma string no código ou em um arquivo no server, como o wordpress faz por exemplo. Óbvio que quem configura deve alterar a string padrão.</p>
<p>Abs.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1026','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1026','Elias Wagner','Register Globals habilitado realmente &Atilde;&copy; uma falha grave, inclusive as novas vers&Atilde;&micro;es j&Atilde;&iexcl; vem desabilitada por default. Mas um c&Atilde;&sup3;digo deve ser escrito independente das configura&Atilde;&sect;&Atilde;&micro;es do ambiente.\n\nPara quem acha que n&Atilde;&pound;o &Atilde;&copy; necess&Atilde;&iexcl;rio validar o $_SERVER&amp;#91;\'SCRIPT_NAME\'&amp;#93; segue aqui uma s&Atilde;&copy;rie de falhas explorando SCRIPT_NAME:\n\nhttp:\/\/osvdb.org\/show\/osvdb\/35502\nhttp:\/\/drupal.org\/node\/324875\nhttp:\/\/web.nvd.nist.gov\/view\/vuln\/detail?vulnId=CVE-2007-2431\nhttp:\/\/www.milw0rm.com\/exploits\/3816\nhttp:\/\/www.derkeiler.com\/Mailing-Lists\/Full-Disclosure\/2010-02\/msg00385.html\n\nMuito gente acha que por ser recomendado o SCRIPT_NAME como op&Atilde;&sect;&Atilde;&pound;o mais segura para o PHP_SELF ele n&Atilde;&pound;o deve ser validado e isto &Atilde;&copy; incorreto.\n\nSobre o Salt, concordo que al&Atilde;&copy;m de armazenar errado a entropia do Salt &Atilde;&copy; baixa, previs&Atilde;&shy;vel. Agora eu discordo que &Atilde;&copy; correto armazenar na mesma tabela junto com o hash, como eu disse um SQLi voc&Atilde;&ordf; pega o hash tamb&Atilde;&copy;m, por exemplo um SQLi como este: http:\/\/www.otavioribeiro.com\/videos\/MSSQL.html\n\nO mais adequado nestes casos &Atilde;&copy; armazenar uma string no c&Atilde;&sup3;digo ou em um arquivo no server, como o wordpress faz por exemplo. &Atilde;�bvio que quem configura deve alterar a string padr&Atilde;&pound;o.\n\nAbs.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by ideud8ef</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1025</link>
		<dc:creator>ideud8ef</dc:creator>
		<pubDate>Sat, 06 Mar 2010 16:11:30 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1025</guid>
		<description />
		<content:encoded><![CDATA[<p>1) Pessoas que ativam register_globals na configuração do PHP deveriam apanhar. Eu simplesmente faria o meu script não funcionar se essa configuração estivesse ativa, assim os exemplos com $_SERVER do livro não poderiam ser injetados mesmo em versões antigas do PHP.</p>
<p>2) O código de salt do livro não apresenta a vulnerabilidade que você disse. É preciso sim armazenar o salt, todo mundo faz isso. Se você pegar o formato de senha encriptado do /etc/shadow por exemplo, ele vai ter primeiro um identificador do tipo de hash, depois o salt, e depois o hash, concatenados numa mesma string.</p>
<p>O problema no código do livro é outro. O salt é muito previsível, por ser baseado somente no tempo, e isso reduz a complexidade de um ataque por rainbow table, pois é necessário armazenar uma pequena faixa de salts. Se o salt tivesse uma boa aleatoriedade, o espaço de salts possíveis seria bem maior, aumentando a complexidade do ataque.</p>
<p>É claro que é sempre recomendável usar a função crypt do PHP para encriptar senhas, que aliás é capaz de usar hash baseado em blowfish como algoritmo, que é computacionalmente mais complexo que o hash sha1 que ele usou.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1025','ideud8ef'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1025','ideud8ef','1) Pessoas que ativam register_globals na configura&Atilde;&sect;&Atilde;&pound;o do PHP deveriam apanhar. Eu simplesmente faria o meu script n&Atilde;&pound;o funcionar se essa configura&Atilde;&sect;&Atilde;&pound;o estivesse ativa, assim os exemplos com $_SERVER do livro n&Atilde;&pound;o poderiam ser injetados mesmo em vers&Atilde;&micro;es antigas do PHP.\r\n\r\n2) O c&Atilde;&sup3;digo de salt do livro n&Atilde;&pound;o apresenta a vulnerabilidade que voc&Atilde;&ordf; disse. &Atilde;� preciso sim armazenar o salt, todo mundo faz isso. Se voc&Atilde;&ordf; pegar o formato de senha encriptado do \/etc\/shadow por exemplo, ele vai ter primeiro um identificador do tipo de hash, depois o salt, e depois o hash, concatenados numa mesma string.\r\n\r\nO problema no c&Atilde;&sup3;digo do livro &Atilde;&copy; outro. O salt &Atilde;&copy; muito previs&Atilde;&shy;vel, por ser baseado somente no tempo, e isso reduz a complexidade de um ataque por rainbow table, pois &Atilde;&copy; necess&Atilde;&iexcl;rio armazenar uma pequena faixa de salts. Se o salt tivesse uma boa aleatoriedade, o espa&Atilde;&sect;o de salts poss&Atilde;&shy;veis seria bem maior, aumentando a complexidade do ataque.\r\n\r\n&Atilde;� claro que &Atilde;&copy; sempre recomend&Atilde;&iexcl;vel usar a fun&Atilde;&sect;&Atilde;&pound;o crypt do PHP para encriptar senhas, que ali&Atilde;&iexcl;s &Atilde;&copy; capaz de usar hash baseado em blowfish como algoritmo, que &Atilde;&copy; computacionalmente mais complexo que o hash sha1 que ele usou.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Vinícius Sant'anna</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1024</link>
		<dc:creator>Vinícius Sant'anna</dc:creator>
		<pubDate>Sat, 06 Mar 2010 14:10:06 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1024</guid>
		<description>ótimo post, porém infeliz os autores desse livro.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1024','VinÃ­cius Sant\'anna'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1024','VinÃ­cius Sant\'anna','Ã³timo post, porÃ©m infeliz os autores desse livro.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>ótimo post, porém infeliz os autores desse livro.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1024','Vin&Atilde;&shy;cius Sant\'anna'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1024','Vin&Atilde;&shy;cius Sant\'anna','&Atilde;&sup3;timo post, por&Atilde;&copy;m infeliz os autores desse livro.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by X2</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1023</link>
		<dc:creator>X2</dc:creator>
		<pubDate>Sat, 06 Mar 2010 12:57:40 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1023</guid>
		<description>1 - Uso de variáveis Super Globals do Php sem sanitização - página 77

Estou descrente que NESSE exemplo isso seja uma vulnerabilidade ou que é necessário o programador gastar linha de código para sanitizar a varíavel $_SERVER['SCRIPT_NAME'].

Tem como mostrar um exemplo claro de como pode explorar esse exemplo?&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1023','X2'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1023','X2','1 - Uso de variÃ¡veis Super Globals do Php sem sanitizaÃ§Ã£o - pÃ¡gina 77\r\n\r\nEstou descrente que NESSE exemplo isso seja uma vulnerabilidade ou que Ã© necessÃ¡rio o programador gastar linha de cÃ³digo para sanitizar a varÃ­avel $_SERVER[\'SCRIPT_NAME\'].\r\n\r\nTem como mostrar um exemplo claro de como pode explorar esse exemplo?'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>1 &#8211; Uso de variáveis Super Globals do Php sem sanitização &#8211; página 77</p>
<p>Estou descrente que NESSE exemplo isso seja uma vulnerabilidade ou que é necessário o programador gastar linha de código para sanitizar a varíavel $_SERVER['SCRIPT_NAME'].</p>
<p>Tem como mostrar um exemplo claro de como pode explorar esse exemplo?
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1023','X2'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1023','X2','1 - Uso de vari&Atilde;&iexcl;veis Super Globals do Php sem sanitiza&Atilde;&sect;&Atilde;&pound;o - p&Atilde;&iexcl;gina 77\r\n\r\nEstou descrente que NESSE exemplo isso seja uma vulnerabilidade ou que &Atilde;&copy; necess&Atilde;&iexcl;rio o programador gastar linha de c&Atilde;&sup3;digo para sanitizar a var&Atilde;&shy;avel $_SERVER&amp;#91;\'SCRIPT_NAME\'&amp;#93;.\r\n\r\nTem como mostrar um exemplo claro de como pode explorar esse exemplo?'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by PHP Security – Nem tudo que é publicado deve ser seguido :Software Livre</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1022</link>
		<dc:creator>PHP Security – Nem tudo que é publicado deve ser seguido :Software Livre</dc:creator>
		<pubDate>Sat, 06 Mar 2010 08:30:53 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1022</guid>
		<description />
		<content:encoded><![CDATA[<p>[...] de que é necessário validar as fontes e questionar o que lhe apresentam como solução.&rdquo; [refer&ecirc;ncia: wagnerelias.com]   Share and [...]
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1022','PHP Security &acirc;�� Nem tudo que &Atilde;&copy; publicado deve ser seguido :Software Livre'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1022','PHP Security &acirc;�� Nem tudo que &Atilde;&copy; publicado deve ser seguido :Software Livre','&amp;#91;...&amp;#93; de que &Atilde;&copy; necess&Atilde;&iexcl;rio validar as fontes e questionar o que lhe apresentam como solu&Atilde;&sect;&Atilde;&pound;o.&amp;rdquo; &amp;#91;refer&amp;ecirc;ncia: wagnerelias.com&amp;#93;   Share and &amp;#91;...&amp;#93;'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1021</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Sat, 06 Mar 2010 03:44:37 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1021</guid>
		<description>João,

você tem razão, o salt é uma boa prática, como eu deixei bem claro:

"2 - Implementação inadequada de salt - página 78

O livro começou bem neste ponto, sugerindo a utilização de salt como recurso para fortalecer os hashs de senha. Mas, como geralmente acontece, a idéia é boa mas a implementação é ruim."

O problema é a implementação do salt sugerido por eles. O salt está junto com a senha, portando o comprometimento do hash via SQLi compromete o salt também.

Abs.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1021','Elias Wagner'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1021','Elias Wagner','JoÃ£o,\n\nvocÃª tem razÃ£o, o salt Ã© uma boa prÃ¡tica, como eu deixei bem claro:\n\n\"2 - ImplementaÃ§Ã£o inadequada de salt - pÃ¡gina 78\n\nO livro comeÃ§ou bem neste ponto, sugerindo a utilizaÃ§Ã£o de salt como recurso para fortalecer os hashs de senha. Mas, como geralmente acontece, a idÃ©ia Ã© boa mas a implementaÃ§Ã£o Ã© ruim.\"\n\nO problema Ã© a implementaÃ§Ã£o do salt sugerido por eles. O salt estÃ¡ junto com a senha, portando o comprometimento do hash via SQLi compromete o salt tambÃ©m.\n\nAbs.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>João,</p>
<p>você tem razão, o salt é uma boa prática, como eu deixei bem claro:</p>
<p>&#8220;2 &#8211; Implementação inadequada de salt &#8211; página 78</p>
<p>O livro começou bem neste ponto, sugerindo a utilização de salt como recurso para fortalecer os hashs de senha. Mas, como geralmente acontece, a idéia é boa mas a implementação é ruim.&#8221;</p>
<p>O problema é a implementação do salt sugerido por eles. O salt está junto com a senha, portando o comprometimento do hash via SQLi compromete o salt também.</p>
<p>Abs.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1021','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1021','Elias Wagner','Jo&Atilde;&pound;o,\n\nvoc&Atilde;&ordf; tem raz&Atilde;&pound;o, o salt &Atilde;&copy; uma boa pr&Atilde;&iexcl;tica, como eu deixei bem claro:\n\n\&quot;2 - Implementa&Atilde;&sect;&Atilde;&pound;o inadequada de salt - p&Atilde;&iexcl;gina 78\n\nO livro come&Atilde;&sect;ou bem neste ponto, sugerindo a utiliza&Atilde;&sect;&Atilde;&pound;o de salt como recurso para fortalecer os hashs de senha. Mas, como geralmente acontece, a id&Atilde;&copy;ia &Atilde;&copy; boa mas a implementa&Atilde;&sect;&Atilde;&pound;o &Atilde;&copy; ruim.\&quot;\n\nO problema &Atilde;&copy; a implementa&Atilde;&sect;&Atilde;&pound;o do salt sugerido por eles. O salt est&Atilde;&iexcl; junto com a senha, portando o comprometimento do hash via SQLi compromete o salt tamb&Atilde;&copy;m.\n\nAbs.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Ricardo</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1020</link>
		<dc:creator>Ricardo</dc:creator>
		<pubDate>Fri, 05 Mar 2010 23:58:17 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1020</guid>
		<description>Eu sempre tive a impressão de que os valores de $_SERVER fossem gerados pelo servidor sem interferência dos clientes (ótimas últimas palavras não é?). Imagina quantos sites php são vulneráveis a esta falha?
Obrigado pela informação, e sobre o que você disse sobre não acreditar em tudo o que é publicado me lembrou da falácia apelo à autoridade.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1020','Ricardo'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1020','Ricardo','Eu sempre tive a impressÃ£o de que os valores de $_SERVER fossem gerados pelo servidor sem interferÃªncia dos clientes (Ã³timas Ãºltimas palavras nÃ£o Ã©?). Imagina quantos sites php sÃ£o vulnerÃ¡veis a esta falha?\r\nObrigado pela informaÃ§Ã£o, e sobre o que vocÃª disse sobre nÃ£o acreditar em tudo o que Ã© publicado me lembrou da falÃ¡cia apelo Ã  autoridade.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Eu sempre tive a impressão de que os valores de $_SERVER fossem gerados pelo servidor sem interferência dos clientes (ótimas últimas palavras não é?). Imagina quantos sites php são vulneráveis a esta falha?<br />
Obrigado pela informação, e sobre o que você disse sobre não acreditar em tudo o que é publicado me lembrou da falácia apelo à autoridade.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1020','Ricardo'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1020','Ricardo','Eu sempre tive a impress&Atilde;&pound;o de que os valores de $_SERVER fossem gerados pelo servidor sem interfer&Atilde;&ordf;ncia dos clientes (&Atilde;&sup3;timas &Atilde;&ordm;ltimas palavras n&Atilde;&pound;o &Atilde;&copy;?). Imagina quantos sites php s&Atilde;&pound;o vulner&Atilde;&iexcl;veis a esta falha?\r\nObrigado pela informa&Atilde;&sect;&Atilde;&pound;o, e sobre o que voc&Atilde;&ordf; disse sobre n&Atilde;&pound;o acreditar em tudo o que &Atilde;&copy; publicado me lembrou da fal&Atilde;&iexcl;cia apelo &Atilde;&nbsp; autoridade.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by João</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1019</link>
		<dc:creator>João</dc:creator>
		<pubDate>Fri, 05 Mar 2010 22:52:09 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1019</guid>
		<description>Não sou especialista em segurança ou em criptografia, mas pelo que eu saiba hoje em dia o uso de um salt tem como objetivo maior tornar muito mais difícil ou talvez impraticável o uso de tabelas rainbow.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1019','JoÃ£o'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1019','JoÃ£o','NÃ£o sou especialista em seguranÃ§a ou em criptografia, mas pelo que eu saiba hoje em dia o uso de um salt tem como objetivo maior tornar muito mais difÃ­cil ou talvez impraticÃ¡vel o uso de tabelas rainbow.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Não sou especialista em segurança ou em criptografia, mas pelo que eu saiba hoje em dia o uso de um salt tem como objetivo maior tornar muito mais difícil ou talvez impraticável o uso de tabelas rainbow.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1019','Jo&Atilde;&pound;o'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1019','Jo&Atilde;&pound;o','N&Atilde;&pound;o sou especialista em seguran&Atilde;&sect;a ou em criptografia, mas pelo que eu saiba hoje em dia o uso de um salt tem como objetivo maior tornar muito mais dif&Atilde;&shy;cil ou talvez impratic&Atilde;&iexcl;vel o uso de tabelas rainbow.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1018</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Fri, 05 Mar 2010 19:54:16 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1018</guid>
		<description>Olá Eusébio,

existem vários exemplos, conforme o link que enviei para o Daniel.

Recomendo principalmente a leitura do primeiro:
http://www.suspekt.org/2009/02/06/some-facts-about-the-phplist-vulnerability-and-the-phpbbcom-hack/

Este é o problema do livro. Quem não está focado em segurança de aplicação web pode passar despercebido.

Abs.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1018','Elias Wagner'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1018','Elias Wagner','OlÃ¡ EusÃ©bio,\n\nexistem vÃ¡rios exemplos, conforme o link que enviei para o Daniel.\n\nRecomendo principalmente a leitura do primeiro:\nhttp:\/\/www.suspekt.org\/2009\/02\/06\/some-facts-about-the-phplist-vulnerability-and-the-phpbbcom-hack\/\n\nEste Ã© o problema do livro. Quem nÃ£o estÃ¡ focado em seguranÃ§a de aplicaÃ§Ã£o web pode passar despercebido.\n\nAbs.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Olá Eusébio,</p>
<p>existem vários exemplos, conforme o link que enviei para o Daniel.</p>
<p>Recomendo principalmente a leitura do primeiro:<br />
<a href="http://www.suspekt.org/2009/02/06/some-facts-about-the-phplist-vulnerability-and-the-phpbbcom-hack/" rel="nofollow">http://www.suspekt.org/2009/02/06/some-facts-about-the-phplist-vulnerability-and-the-phpbbcom-hack/</a></p>
<p>Este é o problema do livro. Quem não está focado em segurança de aplicação web pode passar despercebido.</p>
<p>Abs.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1018','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1018','Elias Wagner','Ol&Atilde;&iexcl; Eus&Atilde;&copy;bio,\n\nexistem v&Atilde;&iexcl;rios exemplos, conforme o link que enviei para o Daniel.\n\nRecomendo principalmente a leitura do primeiro:\nhttp:\/\/www.suspekt.org\/2009\/02\/06\/some-facts-about-the-phplist-vulnerability-and-the-phpbbcom-hack\/\n\nEste &Atilde;&copy; o problema do livro. Quem n&Atilde;&pound;o est&Atilde;&iexcl; focado em seguran&Atilde;&sect;a de aplica&Atilde;&sect;&Atilde;&pound;o web pode passar despercebido.\n\nAbs.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Eusébio</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1017</link>
		<dc:creator>Eusébio</dc:creator>
		<pubDate>Fri, 05 Mar 2010 19:50:24 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1017</guid>
		<description>Concordo com o Daniel. Seria bom mostrar exemplos de como reproduzir o problema, se estás criticando.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1017','EusÃ©bio'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1017','EusÃ©bio','Concordo com o Daniel. Seria bom mostrar exemplos de como reproduzir o problema, se estÃ¡s criticando.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Concordo com o Daniel. Seria bom mostrar exemplos de como reproduzir o problema, se estás criticando.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1017','Eus&Atilde;&copy;bio'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1017','Eus&Atilde;&copy;bio','Concordo com o Daniel. Seria bom mostrar exemplos de como reproduzir o problema, se est&Atilde;&iexcl;s criticando.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Elias Wagner</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1016</link>
		<dc:creator>Elias Wagner</dc:creator>
		<pubDate>Fri, 05 Mar 2010 19:45:40 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1016</guid>
		<description>Olá Daniel,

não é proibido usar o _SERVER, desde que seja sanitizado e isto está claro no post. Quanto a _SERVER não ser manipulado, você está equivocado ou desconhece.  Aqui você vai entender um pouco mais:
http://www.google.com/search?q=Exploiting%20%2B%24_SERVER

Sobre o Salt, realmente e;e deve ser usado, foi exatamente o que eu disse: a dica é certa mais a implementação é errada. O local onde se armazena o salt e a string de salt é essencial para sua eficácia.

Ficou mais claro?&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1016','Elias Wagner'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1016','Elias Wagner','OlÃ¡ Daniel,\n\nnÃ£o Ã© proibido usar o _SERVER, desde que seja sanitizado e isto estÃ¡ claro no post. Quanto a _SERVER nÃ£o ser manipulado, vocÃª estÃ¡ equivocado ou desconhece.  Aqui vocÃª vai entender um pouco mais:\nhttp:\/\/www.google.com\/search?q=Exploiting%20%2B%24_SERVER\n\nSobre o Salt, realmente e;e deve ser usado, foi exatamente o que eu disse: a dica Ã© certa mais a implementaÃ§Ã£o Ã© errada. O local onde se armazena o salt e a string de salt Ã© essencial para sua eficÃ¡cia.\n\nFicou mais claro?'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Olá Daniel,</p>
<p>não é proibido usar o _SERVER, desde que seja sanitizado e isto está claro no post. Quanto a _SERVER não ser manipulado, você está equivocado ou desconhece.  Aqui você vai entender um pouco mais:<br />
<a href="http://www.google.com/search?q=Exploiting%20%2B%24_SERVER" rel="nofollow">http://www.google.com/search?q=Exploiting%20%2B%24_SERVER</a></p>
<p>Sobre o Salt, realmente e;e deve ser usado, foi exatamente o que eu disse: a dica é certa mais a implementação é errada. O local onde se armazena o salt e a string de salt é essencial para sua eficácia.</p>
<p>Ficou mais claro?
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1016','Elias Wagner'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1016','Elias Wagner','Ol&Atilde;&iexcl; Daniel,\n\nn&Atilde;&pound;o &Atilde;&copy; proibido usar o _SERVER, desde que seja sanitizado e isto est&Atilde;&iexcl; claro no post. Quanto a _SERVER n&Atilde;&pound;o ser manipulado, voc&Atilde;&ordf; est&Atilde;&iexcl; equivocado ou desconhece.  Aqui voc&Atilde;&ordf; vai entender um pouco mais:\nhttp:\/\/www.google.com\/search?q=Exploiting%20%2B%24_SERVER\n\nSobre o Salt, realmente e;e deve ser usado, foi exatamente o que eu disse: a dica &Atilde;&copy; certa mais a implementa&Atilde;&sect;&Atilde;&pound;o &Atilde;&copy; errada. O local onde se armazena o salt e a string de salt &Atilde;&copy; essencial para sua efic&Atilde;&iexcl;cia.\n\nFicou mais claro?'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Daniel</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1015</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Fri, 05 Mar 2010 19:39:12 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1015</guid>
		<description>Nao li o livro, mas voce tambem esta exagerando...

O _SERVER nao pode ser manipulado pelo usuario remotamente, sendo que ele eh gerado pelo web server:

http://php.net/manual/en/reserved.variables.server.php

O uso do SCRIPT_NAME eh recomendado pelo manual do PHP:

" 'SCRIPT_NAME'
    Contains the current script's path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file."


Sobre o salt, a implementacao deles eh correta. Inclusive eh desse modo que varios sistemas funcionam (como o proprio Linux e suas senhas).&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1015','Daniel'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1015','Daniel','Nao li o livro, mas voce tambem esta exagerando...\r\n\r\nO _SERVER nao pode ser manipulado pelo usuario remotamente, sendo que ele eh gerado pelo web server:\r\n\r\nhttp:\/\/php.net\/manual\/en\/reserved.variables.server.php\r\n\r\nO uso do SCRIPT_NAME eh recomendado pelo manual do PHP:\r\n\r\n\" \'SCRIPT_NAME\'\r\n    Contains the current script\'s path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.\"\r\n\r\n\r\nSobre o salt, a implementacao deles eh correta. Inclusive eh desse modo que varios sistemas funcionam (como o proprio Linux e suas senhas).'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Nao li o livro, mas voce tambem esta exagerando&#8230;</p>
<p>O _SERVER nao pode ser manipulado pelo usuario remotamente, sendo que ele eh gerado pelo web server:</p>
<p><a href="http://php.net/manual/en/reserved.variables.server.php" rel="nofollow">http://php.net/manual/en/reserved.variables.server.php</a></p>
<p>O uso do SCRIPT_NAME eh recomendado pelo manual do PHP:</p>
<p>&#8221; &#8216;SCRIPT_NAME&#8217;<br />
    Contains the current script&#8217;s path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.&#8221;</p>
<p>Sobre o salt, a implementacao deles eh correta. Inclusive eh desse modo que varios sistemas funcionam (como o proprio Linux e suas senhas).
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1015','Daniel'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1015','Daniel','Nao li o livro, mas voce tambem esta exagerando...\r\n\r\nO _SERVER nao pode ser manipulado pelo usuario remotamente, sendo que ele eh gerado pelo web server:\r\n\r\nhttp:\/\/php.net\/manual\/en\/reserved.variables.server.php\r\n\r\nO uso do SCRIPT_NAME eh recomendado pelo manual do PHP:\r\n\r\n\&quot; \'SCRIPT_NAME\'\r\n    Contains the current script\'s path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.\&quot;\r\n\r\n\r\nSobre o salt, a implementacao deles eh correta. Inclusive eh desse modo que varios sistemas funcionam (como o proprio Linux e suas senhas).'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Júnio</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1014</link>
		<dc:creator>Júnio</dc:creator>
		<pubDate>Fri, 05 Mar 2010 19:10:03 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1014</guid>
		<description>Muito obrigado pela colaboração. Estou iniciando nesta linguagem. Quais livros vocês recomendam sobre PHP?&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1014','JÃºnio'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1014','JÃºnio','Muito obrigado pela colaboraÃ§Ã£o. Estou iniciando nesta linguagem. Quais livros vocÃªs recomendam sobre PHP?'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>Muito obrigado pela colaboração. Estou iniciando nesta linguagem. Quais livros vocês recomendam sobre PHP?
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1014','J&Atilde;&ordm;nio'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1014','J&Atilde;&ordm;nio','Muito obrigado pela colabora&Atilde;&sect;&Atilde;&pound;o. Estou iniciando nesta linguagem. Quais livros voc&Atilde;&ordf;s recomendam sobre PHP?'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Carlos André Ferrari</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1013</link>
		<dc:creator>Carlos André Ferrari</dc:creator>
		<pubDate>Fri, 05 Mar 2010 18:26:38 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1013</guid>
		<description>@Almir Neto

Este é o grande problema.. "Em quem confiar".. por isso que o PHP tem má fama.

Eu uso e confio na documentação do PHP e, com moderação, nos comentários que tem lá. tudo é uma questão de analisar os códigos.

E se o programador tem total conhecimento do Protocolo HTTP e dos métodos comuns de ataque, ele dificilmente terá problemas.&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1013','Carlos AndrÃ© Ferrari'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1013','Carlos AndrÃ© Ferrari','@Almir Neto\r\n\r\nEste Ã© o grande problema.. \"Em quem confiar\".. por isso que o PHP tem mÃ¡ fama.\r\n\r\nEu uso e confio na documentaÃ§Ã£o do PHP e, com moderaÃ§Ã£o, nos comentÃ¡rios que tem lÃ¡. tudo Ã© uma questÃ£o de analisar os cÃ³digos.\r\n\r\nE se o programador tem total conhecimento do Protocolo HTTP e dos mÃ©todos comuns de ataque, ele dificilmente terÃ¡ problemas.'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>@Almir Neto</p>
<p>Este é o grande problema.. &#8220;Em quem confiar&#8221;.. por isso que o PHP tem má fama.</p>
<p>Eu uso e confio na documentação do PHP e, com moderação, nos comentários que tem lá. tudo é uma questão de analisar os códigos.</p>
<p>E se o programador tem total conhecimento do Protocolo HTTP e dos métodos comuns de ataque, ele dificilmente terá problemas.
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1013','Carlos Andr&Atilde;&copy; Ferrari'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1013','Carlos Andr&Atilde;&copy; Ferrari','@Almir Neto\r\n\r\nEste &Atilde;&copy; o grande problema.. \&quot;Em quem confiar\&quot;.. por isso que o PHP tem m&Atilde;&iexcl; fama.\r\n\r\nEu uso e confio na documenta&Atilde;&sect;&Atilde;&pound;o do PHP e, com modera&Atilde;&sect;&Atilde;&pound;o, nos coment&Atilde;&iexcl;rios que tem l&Atilde;&iexcl;. tudo &Atilde;&copy; uma quest&Atilde;&pound;o de analisar os c&Atilde;&sup3;digos.\r\n\r\nE se o programador tem total conhecimento do Protocolo HTTP e dos m&Atilde;&copy;todos comuns de ataque, ele dificilmente ter&Atilde;&iexcl; problemas.'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Php Security – Nem tudo que é publicado deve ser seguido by Marcos</title>
		<link>http://wagnerelias.com/2010/03/04/php-security-nem-tudo-que-e-publicado-deve-ser-seguido/comment-page-1/#comment-1012</link>
		<dc:creator>Marcos</dc:creator>
		<pubDate>Fri, 05 Mar 2010 18:13:31 +0000</pubDate>
		<guid isPermaLink="false">http://wagnerelias.com/?p=692#comment-1012</guid>
		<description>A cara, na boa, quem deseja qualquer outra caracteristica que não seja "form funcionando", já abandonou o php&lt;div class="comment-remix-meta"&gt;&lt;a href="#" class="replyto" onclick="replyto('1012','Marcos'); return false;"&gt;Reply&lt;/a&gt;  - &lt;a href="#" class="quote" onclick="quote('1012','Marcos','A cara, na boa, quem deseja qualquer outra caracteristica que nÃ£o seja \"form funcionando\", jÃ¡ abandonou o php'); return false;"&gt;Quote&lt;/a&gt;&lt;/div&gt;</description>
		<content:encoded><![CDATA[<p>A cara, na boa, quem deseja qualquer outra caracteristica que não seja &#8220;form funcionando&#8221;, já abandonou o php
<div class="comment-remix-meta"><a href="#" class="replyto" onclick="replyto('1012','Marcos'); return false;">Reply</a>  &#8211; <a href="#" class="quote" onclick="quote('1012','Marcos','A cara, na boa, quem deseja qualquer outra caracteristica que n&Atilde;&pound;o seja \&quot;form funcionando\&quot;, j&Atilde;&iexcl; abandonou o php'); return false;">Quote</a></div>
]]></content:encoded>
	</item>
</channel>
</rss>
