Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Desculpe a ignorância, mas como ficaria todo o código acima da maneira que você sugeriu??? pode me ajudar?
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
%>
Valeu mano, valeu demais...
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!!
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"