<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	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/"
		>
<channel>
	<title>Comments on: Validar Dados em ASP</title>
	<atom:link href="http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/feed/" rel="self" type="application/rss+xml" />
	<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/</link>
	<description>Um novo estilo de desenvolvimento</description>
	<lastBuildDate>Tue, 18 Oct 2011 14:43:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
	<item>
		<title>By: Rodrigo</title>
		<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/comment-page-1/#comment-2496</link>
		<dc:creator>Rodrigo</dc:creator>
		<pubDate>Thu, 23 Dec 2010 13:26:40 +0000</pubDate>
		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=412#comment-2496</guid>
		<description>Fiz o teste e a função usada
if isnumeric(request(“id”)) === true then

Se voce ir no navegador na barra do endereço e acrescentar (….) junto ao numero da variavel (id) vai da problemas.

Tera que usar alguma função que retire o ….</description>
		<content:encoded><![CDATA[<p>Fiz o teste e a função usada<br />
if isnumeric(request(“id”)) === true then</p>
<p>Se voce ir no navegador na barra do endereço e acrescentar (….) junto ao numero da variavel (id) vai da problemas.</p>
<p>Tera que usar alguma função que retire o ….</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: João Pedro Pereira</title>
		<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/comment-page-1/#comment-1413</link>
		<dc:creator>João Pedro Pereira</dc:creator>
		<pubDate>Wed, 29 Jul 2009 21:19:11 +0000</pubDate>
		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=412#comment-1413</guid>
		<description>Adicionei Syntax Highlighting aos vossos posts para tornar o código mais legivel.

Francisco obrigado pela tua contribuição e tocaste num ponto que o maisAlojamento se esqueceu que foram os ataques XSS, podiamos preencher a função com mais palavras chave, mas já começa a ficar interessante.

Tenho pena é de não poder publicar a primeira função porque é copiada de outro site (nem a segunda por ser um derivado da primeira). Vamos lá puxar pela imaginação pessoal ;).</description>
		<content:encoded><![CDATA[<p>Adicionei Syntax Highlighting aos vossos posts para tornar o código mais legivel.</p>
<p>Francisco obrigado pela tua contribuição e tocaste num ponto que o maisAlojamento se esqueceu que foram os ataques XSS, podiamos preencher a função com mais palavras chave, mas já começa a ficar interessante.</p>
<p>Tenho pena é de não poder publicar a primeira função porque é copiada de outro site (nem a segunda por ser um derivado da primeira). Vamos lá puxar pela imaginação pessoal <img src='http://joaopedropereira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francisco Silva</title>
		<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/comment-page-1/#comment-1412</link>
		<dc:creator>Francisco Silva</dc:creator>
		<pubDate>Wed, 29 Jul 2009 21:09:04 +0000</pubDate>
		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=412#comment-1412</guid>
		<description>Aprofundando a função que enviaste:

&lt;pre lang=&quot;asp&quot;&gt;function killChars(strWords)

dim badChars
dim newChars

badChars = array(”select”, “drop”, “;”, “–”, “insert”,
“delete”, “xp_”, &quot;update&quot;, &quot;where&quot;, &quot;script&quot;)
newChars = strWords

for i = 0 to uBound(badChars)
newChars = replace(newChars, badChars(i), “”)
next

killChars = newChars

end function&lt;/pre&gt;

Desta forma é possível fazer mais protecções pois podia-se fazer o update de campos da base de dados ou podiam ser feitos ataques XSS pois era na mesma possível inserir scripts.</description>
		<content:encoded><![CDATA[<p>Aprofundando a função que enviaste:</p>

<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #0000ff; font-weight: bold;">function</span> killChars<span style="color: #006600; font-weight:bold;">&#40;</span>strWords<span style="color: #006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color: #990099; font-weight: bold;">dim</span> badChars
<span style="color: #990099; font-weight: bold;">dim</span> newChars
&nbsp;
badChars <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">array</span><span style="color: #006600; font-weight:bold;">&#40;</span>”<span style="color: #990099; font-weight: bold;">select</span>”, “drop”, “<span style="color: #006600; font-weight: bold;">;</span>”, “–”, “insert”,
“delete”, “xp_”, <span style="color: #cc0000;">&quot;update&quot;</span>, <span style="color: #cc0000;">&quot;where&quot;</span>, <span style="color: #cc0000;">&quot;script&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
newChars <span style="color: #006600; font-weight: bold;">=</span> strWords
&nbsp;
<span style="color: #990099; font-weight: bold;">for</span> i <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #800000;">0</span> <span style="color: #990099; font-weight: bold;">to</span> <span style="color: #330066;">uBound</span><span style="color: #006600; font-weight:bold;">&#40;</span>badChars<span style="color: #006600; font-weight:bold;">&#41;</span>
newChars <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>newChars, badChars<span style="color: #006600; font-weight:bold;">&#40;</span>i<span style="color: #006600; font-weight:bold;">&#41;</span>, “”<span style="color: #006600; font-weight:bold;">&#41;</span>
<span style="color: #990099; font-weight: bold;">next</span>
&nbsp;
killChars <span style="color: #006600; font-weight: bold;">=</span> newChars
&nbsp;
<span style="color: #990099; font-weight: bold;">end</span> <span style="color: #0000ff; font-weight: bold;">function</span></pre></div></div>

<p>Desta forma é possível fazer mais protecções pois podia-se fazer o update de campos da base de dados ou podiam ser feitos ataques XSS pois era na mesma possível inserir scripts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: João Pedro Pereira</title>
		<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/comment-page-1/#comment-1411</link>
		<dc:creator>João Pedro Pereira</dc:creator>
		<pubDate>Wed, 29 Jul 2009 20:55:02 +0000</pubDate>
		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=412#comment-1411</guid>
		<description>Sem dúvida muito mais optimizado que o meu código, quanto ao tempo ganho não tenho noção de quanto será o ganho mas devemos sempre optimizar ao máximo o código pois já o povo dizia &#039;grão a grão enche a galinha o papo&#039;.

Obrigado pela tua contribuição, espero ver-te mais vezes por cá :)</description>
		<content:encoded><![CDATA[<p>Sem dúvida muito mais optimizado que o meu código, quanto ao tempo ganho não tenho noção de quanto será o ganho mas devemos sempre optimizar ao máximo o código pois já o povo dizia &#8216;grão a grão enche a galinha o papo&#8217;.</p>
<p>Obrigado pela tua contribuição, espero ver-te mais vezes por cá <img src='http://joaopedropereira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maisAlojamento</title>
		<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/comment-page-1/#comment-1410</link>
		<dc:creator>maisAlojamento</dc:creator>
		<pubDate>Wed, 29 Jul 2009 19:05:42 +0000</pubDate>
		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=412#comment-1410</guid>
		<description>Esta função seria mais aprofundada embora a de cima como restringe o parâmetro a um numérico será suficiente. Mas para outros inputs como strings esta é mais indicada pois remove comandos sql:

&lt;pre lang=&quot;asp&quot;&gt;function killChars(strWords)

dim badChars
dim newChars

badChars = array(&quot;select&quot;, &quot;drop&quot;, &quot;;&quot;, &quot;--&quot;, &quot;insert&quot;,  
&quot;delete&quot;, &quot;xp_&quot;)
newChars = strWords

for i = 0 to uBound(badChars)
newChars = replace(newChars, badChars(i), &quot;&quot;)
next

killChars = newChars

end function&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Esta função seria mais aprofundada embora a de cima como restringe o parâmetro a um numérico será suficiente. Mas para outros inputs como strings esta é mais indicada pois remove comandos sql:</p>

<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #0000ff; font-weight: bold;">function</span> killChars<span style="color: #006600; font-weight:bold;">&#40;</span>strWords<span style="color: #006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color: #990099; font-weight: bold;">dim</span> badChars
<span style="color: #990099; font-weight: bold;">dim</span> newChars
&nbsp;
badChars <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">array</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;select&quot;</span>, <span style="color: #cc0000;">&quot;drop&quot;</span>, <span style="color: #cc0000;">&quot;;&quot;</span>, <span style="color: #cc0000;">&quot;--&quot;</span>, <span style="color: #cc0000;">&quot;insert&quot;</span>,  
<span style="color: #cc0000;">&quot;delete&quot;</span>, <span style="color: #cc0000;">&quot;xp_&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
newChars <span style="color: #006600; font-weight: bold;">=</span> strWords
&nbsp;
<span style="color: #990099; font-weight: bold;">for</span> i <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #800000;">0</span> <span style="color: #990099; font-weight: bold;">to</span> <span style="color: #330066;">uBound</span><span style="color: #006600; font-weight:bold;">&#40;</span>badChars<span style="color: #006600; font-weight:bold;">&#41;</span>
newChars <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>newChars, badChars<span style="color: #006600; font-weight:bold;">&#40;</span>i<span style="color: #006600; font-weight:bold;">&#41;</span>, <span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
<span style="color: #990099; font-weight: bold;">next</span>
&nbsp;
killChars <span style="color: #006600; font-weight: bold;">=</span> newChars
&nbsp;
<span style="color: #990099; font-weight: bold;">end</span> <span style="color: #0000ff; font-weight: bold;">function</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>By: maisAlojamento</title>
		<link>http://joaopedropereira.com/blog/2009/07/27/validar-dados-asp/comment-page-1/#comment-1409</link>
		<dc:creator>maisAlojamento</dc:creator>
		<pubDate>Wed, 29 Jul 2009 18:59:25 +0000</pubDate>
		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=412#comment-1409</guid>
		<description>viva,

em termos globais o código que propuseste deverá ser suficiente para prevenir a maior parte dos ataques via sql injection.

no entanto deixo dicas de optimizacao:

em vez de:

&lt;pre lang=&quot;asp&quot;&gt;if IsNumeric(request(&quot;id&quot;)) === TRUE then
GetNews = &quot;SELECT NewsID, campox, campoy, Imagem1, Imagem2, Artigo FROM empresa_News WHERE NewsID = &#039;&quot;&amp;request(&quot;id&quot;)&amp;&quot;&#039; &quot;
Set RSNews = MyConn.execute(GetNews)&lt;/pre&gt;

codificar assim:

&lt;pre lang=&quot;asp&quot;&gt;id = request.querystring(&quot;id&quot;)
&#039;ou request.form conforme a origem dos dados...
if isNumeric(id) then

GetNews = &quot;SELECT NewsID, campox, campoy, Imagem1, Imagem2, Artigo FROM empresa_News WHERE NewsID = &amp; id
&#039;nao deverá ser preciso mais nada pois so entra aqui se for numerico

Set RSNews = MyConn.execute(GetNews)
end if


fica mais simples o código assim, e ganhas bastante em termos de performance.&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>viva,</p>
<p>em termos globais o código que propuseste deverá ser suficiente para prevenir a maior parte dos ataques via sql injection.</p>
<p>no entanto deixo dicas de optimizacao:</p>
<p>em vez de:</p>

<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">if</span> IsNumeric<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #990099; font-weight: bold;">request</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;id&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #006600; font-weight: bold;">===</span> <span style="color: #0000ff; font-weight: bold;">TRUE</span> <span style="color: #990099; font-weight: bold;">then</span>
GetNews <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;SELECT NewsID, campox, campoy, Imagem1, Imagem2, Artigo FROM empresa_News WHERE NewsID = '&quot;</span><span style="color: #006600; font-weight: bold;">&amp;</span>amp<span style="color: #006600; font-weight: bold;">;</span>request<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;id&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight: bold;">&amp;</span>amp<span style="color: #006600; font-weight: bold;">;</span><span style="color: #cc0000;">&quot;' &quot;</span>
<span style="color: #990099; font-weight: bold;">Set</span> RSNews <span style="color: #006600; font-weight: bold;">=</span> MyConn.<span style="color: #330066;">execute</span><span style="color: #006600; font-weight:bold;">&#40;</span>GetNews<span style="color: #006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>codificar assim:</p>

<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;">id <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #990099; font-weight: bold;">request</span>.<span style="color: #330066;">querystring</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;id&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
<span style="color: #008000;">'ou request.form conforme a origem dos dados...</span>
<span style="color: #990099; font-weight: bold;">if</span> isNumeric<span style="color: #006600; font-weight:bold;">&#40;</span>id<span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #990099; font-weight: bold;">then</span>
&nbsp;
GetNews <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;SELECT NewsID, campox, campoy, Imagem1, Imagem2, Artigo FROM empresa_News WHERE NewsID = &amp;amp; id
'nao deverá ser preciso mais nada pois so entra aqui se for numerico
&nbsp;
Set RSNews = MyConn.execute(GetNews)
end if
&nbsp;
&nbsp;
fica mais simples o código assim, e ganhas bastante em termos de performance.</span></pre></div></div>

]]></content:encoded>
	</item>
</channel>
</rss>

