Posts de Maio, 2006

Escapando / substituindo caracteres

Maio 29, 2006

Substituir caracteres é importante para evitar ataques de SLQ Inject ou a postagem de trechos de códigos HTML / Javascript em formulários, que podem causar resultados inesperados em páginas onde este conteúdo seria exibido e comandos não autorizados de administração do banco.

A sintaxe é:

Replace(Request.form(“campo”),”‘”,”`”)

O primeiro símbolo entre haspas é o que deve ser substituído, e o segundo é o que irá substituí-lo. Escapar haspas simples e duplas é útil para evitar a inserção de comandos SQL no banco, e escapar os sinais de menor(<) e maior (>) evita a inserção de tags em geral.

Response.Buffer

Maio 24, 2006

Response.Buffer = True, significa que a página será armazenada em buffer, ou seja, só será enviada ao client quando ele for toda processada.

Você pode deixar como false também, a cada processamento feito, será enviado ao browser. Imagine um loop de segundo em segundo mande um response.write, o browser receberá cada comando individualmente e não tudo somente ao final.

fonte: www.aspbrasil.com.br

Função DateDiff: obtendo a diferença entre duas datas ou dois horários

Maio 9, 2006

Sintaxe :

tempototal = DateDiff(“n”, primeirahora, segundahora)

Será atribuido à variável tempototal o intervalo de tempo contido entre as variáveis primeirahora e segunda hora ( segundahora – primeirahora ), em minutos. Entende-se que o conteúdo das variáveis esteja em formato hora.

A unidade de medida do resultado (minutos, no exemplo) é determinada pelo parâmetro “n”. Outros formatos possíveis são:

“h” = horas
“s” = segundos
“yyyy” = Pela lógica devem ser anos, mas esse eu ainda não testei… :)

String de conexão com banco MySQL em ASP

Maio 8, 2006

Set Conexao = Server.CreateObject(“ADODB.Connection”)
strConexao = “driver=MySQL ODBC 3.51 Driver;server=mysql.seudominio.com.br;uid=nomeusuario;pwd=senha;_database=nomedobanco”
Conexao.Open strConexao

Editando registro no banco através de um script ASP

Maio 5, 2006

editar / modificar / modificando / update

ComandoSql = "update tabela set campo = 'valor' where ID=valor"

string_conexao.execute(ComandoSql)

Inserção em banco de dados usando ASP (simples e direto)

Maio 5, 2006

inserir / inserindo

ComandoSql = "INSERT INTO tb_trabalhos(aluno, arquivo, instituicao, curso, data, observacoes)"
ComandoSql = ComandoSql & "VALUES('" & varnome & "','" & vararquivo & "','"
ComandoSql = ComandoSql & varlocalcurso &"','"
ComandoSql = ComandoSql & varcurso & "','"
ComandoSql = ComandoSql & vardata & "','"
ComandoSql = ComandoSql & varobservacoes &"')"
MM_cn_banco_STRING.execute(ComandoSql)

Apagando registros de um banco em um script ASP

Maio 5, 2006

removendo / deletando / apagar / remover / deletar

query_deletar = “delete from tb_trabalhos where ID = ” & request.Form(“ID_remover”)
Set deleta = Server.CreateObject(“ADODB.Command”)
deleta.ActiveConnection = MM_cn_banco_STRING
deleta.CommandText = query_deletar
deleta.Execute
deleta.ActiveConnection.Close

Apagando arquivos com um script ASP

Maio 5, 2006

apagar / remover / deletar / removendo / deletando

Set Objeto = Server.CreateObject("Scripting.FileSystemObject")
Objeto.DeleteFile Server.MapPath("trabalhos_enviados/" & rs_trabalhos.fields.item("arquivo").value)
Set Objeto = Nothing

Como fazer para que arquivos comuns disponibilizados para download não sejam abertos pelo navegador

Maio 3, 2006

<%
'mostra via servidor que o response.addheader será aplicado para download
response.AddHeader "Content-Type","application/x-msdownload"

'mostramos o arquivo que será feito o download, independente de sua extensão
'usaremos no exemplo: arquivo.pdf
response.AddHeader "Content-Disposition","attachment; filename=arquivo.pdf"
Response.Flush

Response.Buffer = True
Const adTypeBinary = 1

'leremos abaixo o arquivo em modo binário através do ADODB
Set binario = Server.CreateObject("ADODB.Stream")
binario.Open
binario.Type = adTypeBinary

'Informe aqui o caminho completo do arquivo no servidor
' Se preferir, use Server.MapPath("arquivo.pdf")
binario.LoadFromFile Server.MapPath("arquivo.pdf")
Response.BinaryWrite binario.Read

binario.Close
Set binario = Nothing
Response.Flush
%>

Não utilize query string do tipo arquivo.asp?nomedoarquivo=arquivo.extensão, pois utilizando querystring, qualquer usuário poderá mudar o nome e copiar vários arquivos do seu site, como o global.asa, banco de dados e etc. Utilize métodos de segurança ao utilizar o código asp acima.

Nota do André: Ainda não testei isso

Fonte: http://www.aspbrasil.com.br/conteudo/detalhesCompleta.aspx?codConteudo=3422&Secao=DICAS