Active Server Pages Introdução Nataniel A.K.A admin@angola-security.tk http://www.angola-security.tk ********************************************************************** * * * * * * * * ********************************************************************** Intro ASP significa Active Server pages uma linguagem SSS ou Server Side Script ou seja uma linguagem de Script que roda do lado do servidor o que o diferencia das linguagens de script como o javascript que roda no lado do cliente. As suas vantagens sao a maior seguranca nas transaccoes e tambem que os codigos nao podem ser alterados por clientes embora saibamos que antes ja houve falhas no IIS que permitiam ver o codigo dessas paginas. Sintaxe Muito simples o codigo em ASP pode ser imbutido em qualquer lugar da pagina desde que esteja entre <% e %>. por exemplo: Teste de apetite <% ' O codigo ja inicia aqui Response.Write " Ola Stinger " %> O resultado vai ser um Ola Stinger na pagina. Ja me ia esquecendo os comentarios sao precedidos de um ' embora existam outras formas. Variaveis As variaveis em ASP sao declaradas de uma forma muito simples por exemplo: <% var = stinger varnumber = 2 'Ou varnumber = "2" %> Aplicando essa logica temos <% testevar = Stinger testavar = Eu sou Response.Write " & testevar , & testavar " %> Ja pudeste notar que para se imprimem as variaveis precedendo-as de um & e que elas podem ser tanto strings como numeros. Operadores Matematicos Os operadores matematicos para o ASP sao os mesmos para as outras linguagens e a sua sintaxe nao difere muito por exemplo: <% um = 1 dois = 2 'somando Response.Write("um+dois") 'subtraindo Response.Write("um-dois") 'multiplicacao Response.Write("um*dois") 'divisao Response.Write("um/dois") 'Exponenciacao Response.Write("um^dois") 'Multiplos calculos Response.Write (((1+5)/6)^(3/12))*4 %> O resultado vai ser 3 Operadores de comparacao Estes operadores como sabes tambem fazem parte da matematica e servem como o nome diz para comparar por exemplo <% 'declaramos 2 variaveis var1 = 30 var2 = 30 %> Se queremos saber se as duas variaveis sao iguais fizemos o seguinte: <% if var1=var2 then response.write ("As variaveis sao iguais") else response.write ("Ops , nao sao iguais") end if %> Se queremos saber se sao diferentes <% if var1<>var2 then response.write ("Hehe sao diferentes") else response.write ("Tenta outra") end if %> Se queremos saber se eh maior <% if var1>var2 then response.write ("maior") else response.write ("tenta outra") end if %> Maior ou igual <% if var1>=var2 then response.write ("maior ou igual") else response.write ("Nada disso, falhaste") end if %> Menor <% if var1 Menor ou igual <% if var1<=var2 then response.write ("Menor ou igual") else response.write ("eeeerado") end if %> Operadores Logicos Os operadores logicos sao os seguintes: And, Or, Xor, Eqv, Imp, Not And(e em portugues) - pode-se fazer multiplas comparacoes com ele: <% var1=5 var2=45 var3=3 if var1 Or(ou em portugues) serve para fazer comparacoes multiplas tambem: <% var1=5 var2=45 var3=3 if var1 Condicionais Vamos agora um pouco ao jogo das condicionais: if uma condicional que nao recomendo por exemplo: <% var1=5 var2=45 if var1 Podemos usar tambem o Select Case: <% var1=5 var2=45 Select Case Case var1 Nao vamos mais perder tempo vamos aos forms: Vamos criar um form que pergunta o nome e o sobrenome do usuario. form.htm
Nome Sobre
Vamos criar a pagina que recebe recebe.asp <% nome=request.form("nome") sobrenome=request.form("sobrenome") 'Em seguida fizemos o tratamento Select case nome Case "" End Select Response.Write("Coloque o nome no form") Select Case sobrenome Case "" Response.Write("Coloque o sobrenome no form") End Select ' Conectamo-nos ao banco de dados Set conectar= Server.Createobject("ADODB.CONECTION") 'abrimos a conexao conectar.open "DRIVER{SQL Server}; SERVER=127.0.0.1; UID=stinger; PASS=quartxolos; DATABASE=lammerdbase" 'em seguida enviamos ao banco de dados os dados do form Set enviar=conectar.Execute("INSERT INTO lammerdbase (nome , sobrenome) VALUES ('" & nome & "', '" & sobrenome & "' ") Response.Write("Dados enviados com sucesso") %> Seguranca Alguns crackers enviam requests como ' " - < > para tentar tecnicas como XSS e SQL Injection a fim de exploitarem usuarios. Para proteger os usuarios desses truques podemos substituir esses caracteres quando sao enviados pelos forms. Geralmente sao explorados via metodo GET porque esse metodo pode ser manipulado via browser enquanto o metodo POST nao permite isto. Vamos pegar no exemplo acima e protege-lo contra um ataque desse tipo recebe.asp <% 'Em vez de ser assim: 'nome=request.form("nome") 'sobrenome=request.form("sobrenome") 'Fizemos assim: nome=Replace(TRIM("request.form("nome")),"'","<",">","-","--"," ") sobrenome=Replace(TRIM("request.form("nome")),"'","<",">","-","--"," ") %> Fica muito dificil fazer uma filtragem dos "bad caracters" nos forms, mas uma subistituicao fica dificil isso porque poderia originar uma "confusao" no tratamento dos dados, por isso se notaram acima eu sibustitui todos os mau caracteres por   (espaco). Minha Pagina de testes ASP http://www12.brinkster.com/natanieltestes/ 2003