Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eduardojipa

[Resolvido] Proteger contra SQL Injection na prática

Recommended Posts

Fiz um sistema simples de busca a um banco de notícias com o Dreamweaver mesmo, mas quero saber como proteger contra Injeções de SQL, onde eu coloco e como coloco a função pra substituir as " ' " e palavras maliciosas...

 

O form de busca:

 

<form id="Busca" name="Busca" method="get" action="resultado_busca.asp"><input name="busca" type="text" class="busca" id="busca" /><a href="#"><input type="image" name="imageField" src="img/buscar.gif" /></a></form>
A RS de Resultado:

 

<%Dim news__MMColParamnews__MMColParam = "1"If (Request.QueryString("busca") <> "") Then   news__MMColParam = Request.QueryString("busca")End If%><%Dim newsDim news_numRowsSet news = Server.CreateObject("ADODB.Recordset")news.ActiveConnection = MM_conexao_STRINGnews.Source = "SELECT * FROM noticia WHERE titulo LIKE '%" + Replace(news__MMColParam, "'", "''") + "%' ORDER BY idnoticia DESC"news.CursorType = 0news.CursorLocation = 3news.LockType = 1news.Open()news_numRows = 0%>
O código é um pouco sujo pois é gerado pelo DW, mas gostaria de saber na prática onde inserir a função..

Aguardo a ajuda.

 

Eduardo Perazzoli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade você já vez que foi o replace, mais pode ser assim tbm

 

ASP
dim news__MMColParam

 

news__MMColParam = Replace(news__MMColParam, "'", "''")

news__MMColParam = Replace(news__MMColParam, "select", "###")

news__MMColParam = Replace(news__MMColParam, "where", "###")

 

Set news = Server.CreateObject("ADODB.Recordset")

news.ActiveConnection = MM_conexao_STRING

news.Source = "SELECT * FROM noticia WHERE titulo LIKE '%"&news__MMColParam&"%' ORDER BY idnoticia DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP
<%

Dim news__MMColParam

news__MMColParam = "1"

If (Request.QueryString("busca") <> "") Then

  news__MMColParam = Request.QueryString("busca")

  news__MMColParam = Replace(news__MMColParam, "'", "''")

  news__MMColParam = Replace(news__MMColParam, "select", "###")

  news__MMColParam = Replace(news__MMColParam, "where", "###")

End If

%>

<%

Dim news

Dim news_numRows

 

Set news = Server.CreateObject("ADODB.Recordset")

news.ActiveConnection = MM_conexao_STRING

news.Source = "SELECT * FROM noticia WHERE titulo LIKE '%"&news__MMColParam&"%' ORDER BY idnoticia DESC"

news.CursorType = 0

news.CursorLocation = 3

news.LockType = 1

news.Open()

 

news_numRows = 0

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dúvidas cara é só postar e só uma observação...

 

Você pode criar mais replace's abaixo dos que foram criados com mais palavras ou caracteres que queira fazer a filtragem!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.