ESTUDO DE TÉCNICAS DE PROTEÇÃO CONTRA INVASÕES POR SQL INJECTION FELIPE CALLORI

Tamanho: px
Começar a partir da página:

Download "ESTUDO DE TÉCNICAS DE PROTEÇÃO CONTRA INVASÕES POR SQL INJECTION FELIPE CALLORI"

Transcrição

1 UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO ESTUDO DE TÉCNICAS DE PROTEÇÃO CONTRA INVASÕES POR SQL INJECTION FELIPE CALLORI CUIABÁ MT 2007

2 UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO ESTUDO DE TÉCNICAS DE PROTEÇÃO CONTRA INVASÕES POR SQL INJECTION FELIPE CALLORI Orientador: Prof. MSc. JOSÉ DE PAULA NEVES NETO Monografia apresentada ao Curso de Ciência da Computação da Universidade Federal de Mato Grosso, para obtenção do Título de Bacharel em Ciência da Computação. CUIABÁ MT 2007

3 UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CERTIFICADO DE APROVAÇÃO Título: Estudo de técnicas de proteção contra invasões por SQL Injection Autor: Felipe Callori Aprovado em 19/03/2007 Prof. MSc. José de Paula Neves Neto UFMT/ICET/DCC (Orientador) Prof. Dra. Patricia Cristiane de Souza UFMT/ICET/DCC Prof. Dr. Josiel Maimone de Figueiredo UFMT/ICET/DCC

4 DEDICATÓRIA À minha querida mãe que sempre me apoiou e orientou em todas as minhas decisões. À memória de meu pai que fez de tudo para garantir meu futuro e de meus irmãos. À minha namorada pela sua atenção, carinho e apoio.

5 AGRADECIMENTOS Ao Prof. José de Paula Neves Neto pela dedicação com que me orientou neste trabalho de conclusão de curso de Ciência da computação.

6 SUMÁRIO LISTA DE CÓDIGOS... 8 LISTA DE FIGURAS LISTA DE MENSAGENS LISTA DE SIGLAS E ABREVIATURAS RESUMO INTRODUÇÃO APRESENTAÇÃO OBJETIVOS Objetivo Geral Objetivos Específicos JUSTIFICATIVA METODOLOGIA CRONOGRAMA PROPOSTO CRONOGRAMA EXECUTADO CONTEXTUALIZAÇÃO HTTP Método GET Método POST HTML Formulários PROTOCOLO CGI A LINGUAGEM SQL Comandos Básicos da linguagem SQL CODE INJECTION SQL INJECTION HISTÓRICO SOBRE SQL INJECTION O QUE É SQL INJECTION? FORMAS DE SQL INJECTION Manipulação de SQL SQL Injection baseado em erros Blind SQL Injection VULNERABILIDADES EM SISTEMAS ESPECÍFICOS VULNERABILIDADES EM SQL SERVER Ataques em nível de sistema VULNERABILIDADES EM MYSQL SELECT e UNION Função LOAD FILE Atrasos de Tempo e a Função BENCHMARK VULNERABILIDADES EM ORACLE Injeção de Código Injeção em chamadas de Função ANATOMIA DE UM ATAQUE O ATAQUE SUGESTÕES PREVENTIVAS PRÁTICAS DE PROTEÇÃO VALIDAÇÃO DE ENTRADAS DO USUÁRIO... 73

7 Validação com HTML e Javascript MENSAGENS DE ERRO CONFIGURAÇÕES NO BANCO DE DADOS EXPRESSÕES SQL PREPARADAS E STORED PROCEDURES CONCLUSÕES REFERÊNCIAS BIBLIOGRÁFICAS ANEXO A - SITE DO MINISTÉRIO DA JUSTIÇA FOI INVADIDO... 92

8 8 LISTA DE CÓDIGOS CÓDIGO 1 - ENVIO DE DADOS PELO MÉTODO GET CÓDIGO 2 - REPRESENTAÇÃO DE UM FORMULÁRIO HTML CÓDIGO 3 - SELECIONANDO A TABELA USUARIOS CÓDIGO 4 - ATUALIZANDO USUÁRIO CÓDIGO 5 - ESQUEMA DE CONSULTA CÓDIGO 6 - SQL INJETADA CÓDIGO 7 - COMENTANDO LINHAS CÓDIGO 8 - URL NORMAL CÓDIGO 9 - URL ATACADA CÓDIGO 10 - VARIÁVEL PROCESSO CÓDIGO 11 - APAGANDO PROCESSOS CÓDIGO 12 - EXEMPLO DE TIME DELAY CÓDIGO 13 - EXEMPLO DE BLIND INJECTION CÓDIGO 14 - ESQUEMA DA TABELA DE USUÁRIOS CÓDIGO 15 - CONSULTA POR USUÁRIO CÓDIGO 16 - VARIÁVEL CONSULTA CÓDIGO 17 - VISUALIZAR VERSÃO DO SQL SERVER CÓDIGO 18 - INJETANDO USUÁRIO NO BD CÓDIGO 19 - RECUPERANDO NOME DE USUÁRIO DA TABELA CÓDIGO 20 - ROUBANDO SENHA DE USUÁRIO CÓDIGO 21 - UTILIZAÇÃO DO COMANDO XP_CMDSHELL CÓDIGO 22 - VERIFICAÇÃO DE USUÁRIO NO BD CÓDIGO 23 - URL PARA CONSULTAR CÓDIGO CÓDIGO 24 - RETORNANDO VERSÃO DO MYSQL CÓDIGO 25 - RECUPERANDO DADOS DA TABELA FUNC CÓDIGO 26 - VENDO CONTEÚDO DO ARQUIVO CÓDIGO 27 - RECUPERANDO HASHES DAS SENHAS DE USUÁRIO CÓDIGO 28 - UTILIZANDO HEXADECIMAIS CÓDIGO 29 - FAZENDO REQUISIÇÕES COM HEXADECIMAIS CÓDIGO 30 - VISUALIZANDO OS PRIMEIROS 60 BYTES DO ARQUIVO BOOT.INI CÓDIGO 31 - RECUPERANDO OS PRÓXIMOS 60 BYTES DO ARQUIVO BOOT.INI CÓDIGO 32 - UTILIZAÇÃO DA FUNÇÃO BENCHMARK CÓDIGO 33 - EXEMPLO BENCHMARK CÓDIGO 34 - EXTRAINDO INFORMAÇÕES COM BENCHMARK CÓDIGO 35 - RECUPERANDO VALORES BIT A BIT CÓDIGO 36 - TIPO COMUM DE ATAQUE CÓDIGO 37 - BLOCO PL/SQL CÓDIGO 38 - BLOCO PL/SQL MODIFICADO CÓDIGO 39 - EXEMPLO DE EXPRESSÃO SQL CÓDIGO 40 - EXPRESSÃO SQL MANIPULADA CÓDIGO 41 - CRIANDO NOVOS USUÁRIOS CÓDIGO 42 - DESCOBRINDO O SEGUNDO USUÁRIO DA APLICAÇÃO CÓDIGO 43 - USANDO A CLÁUSULA UNION NO ATAQUE CÓDIGO 44 - DESCOBRINDO O NÚMERO DE CAMPOS DA CONSULTA CÓDIGO 45 - NÚMERO CORRETO DE CAMPOS DA CONSULTA CÓDIGO 46 - URL DE ÁREA ADMINISTRATIVA CÓDIGO 47 - DESCOBRINDO O VALOR DO CAMPO USERNAME CÓDIGO 48 - DESCOBRINDO A SENHA DO ADMINISTRADOR CÓDIGO 49 NOME DE USUÁRIO CÓDIGO 50 LITERAL RESULTANTE CÓDIGO 51 SENHA MALICIOSA CÓDIGO 52 PESQUISA FORMADA PELA APLICAÇÃO CÓDIGO 53 BURLANDO O COMANDO SELECT... 75

9 CÓDIGO 54 CONSULTA INSEGURA CÓDIGO 55 CONSULTA SEGURA

10 10 LISTA DE FIGURAS FIGURA 1 - ESQUEMA DO CGI (ADAPTADO DE BÔAS ET AL, 2001) FIGURA 2 - CICLO DE VIDA DE UM CGI (BÔAS ET AL, 2001) FIGURA 3 - ESQUEMA DA INJEÇÃO DE SQL (ADAPTADO DE JAVAFREE.ORG, 2003) FIGURA 4 - ENCONTRANDO CAMPO VULNERÁVEL FIGURA 5 - ERRO DE SINTAXE SQL FIGURA 6 - TENTATIVA DE ENTRAR NO SISTEMA FIGURA 7 - MENSAGEM DE ERRO NA TENTATIVA DE LOGAR FIGURA 8 - NOVA TENTATIVA DE ENTRAR NO SISTEMA FIGURA 9 - SUCESSO EM ENTRAR NO SISTEMA FIGURA 10 - SEGUNDO USUÁRIO DA APLICAÇÃO FIGURA 11 - ERRO DE TABELA NÃO EXISTENTE FIGURA 12 - ERRO NO NÚMERO DE CAMPOS DA CLÁUSULA UNION FIGURA 13 - LOGADO NO SISTEMA UTILIZANDO UNION FIGURA 14 - ÁREA ADMINISTRATIVA DO SITE FIGURA 15 - USERNAME DO ADMINISTRADOR FIGURA 16 - SENHA DO ADMINISTRADOR FIGURA 17 - TENTATIVA DE ENTRAR NA ÁREA ADMINISTRATIVA FIGURA 18 - PAINEL DA ÁREA ADMINISTRATIVA FIGURA 19 - TESTE DE VULNERABILIDADE FIGURA 20 - MENSAGEM DE ERRO COM EXCESSO DE INFORMAÇÕES... 78

11 11 LISTA DE MENSAGENS MENSAGEM 1 - ERRO DE SINTAXE GERADO NA APLICAÇÃO MENSAGEM 2 - VERSÃO DO SQL SERVER MENSAGEM 3 - REVELANDO NOME DA TABELA MENSAGEM 4 - REVELANDO PRÓXIMO NOME DA TABELA MENSAGEM 5 - REVELANDO SENHA DO ADMIN MENSAGEM 6 - ERRO GERADO PELA CLÁUSULA UNION... 49

12 12 LISTA DE SIGLAS E ABREVIATURAS API ASP ATH BD CGI Application Program Interface Interface de aplicação de programas Active Server Page Páginas de Servidor Ativo Against The Hell Contra o Inferno Banco de Dados Common Gateway Interface Interface de porta de comunicação comum DB2 Database2 Gerenciador de Banco de dados (Base de dados 2) DBA DENATRAN DOS GHZ HTML HTML HTTP IDC IIS MJ NT ODBC PHP PL/SQL DataBase Administrator Administrador da Base de Dados Departamento Nacional de Trânsito Denial Of Service Negação de Serviço Gigahertz Hypertext Markup Language Linguagem de Marcação de Hipertexto HyperText Markup Language Linguagem de marcação de Hipertexto HyperText Transfer Protocol Protocolo de Transferência de Hipertexto Integrated Database Connector - Conector de Base de Dados Integradas Internet Information Service Serviço de Informação da Internet Ministério da Justiça New Technology Nova Tecnologia Open Data Base Conectivity Conectividade de Banco de Dados Aberto Hypertext PreProcessor Pré-processador de Hipertexto Procedural Language/SQL Linguagem Procedural/SQL

13 13 PT SQL URL VBA WWW Partido dos Trabalhadores Structured Query Language Linguagem de Consulta Estruturada Universal Resource Locator Localizador de Códigos Universal Visual Basic Application Aplicação de Visual Basic World Wide Web Teia do tamanho do mundo

14 14 RESUMO A técnica de invasão por SQL Injection atualmente é a forma de ataque mais realizada contra servidores de banco de dados (BD) na Internet. Pelo menos um site entre três consultados durante a pesquisa, que se conectam a uma base de dados, apresentaram vulnerabilidades a esta forma de ataque. Essa técnica se aproveita de falhas de programação presentes em scripts que realizam conexão com um BD. Essas falhas permitem que comandos SQL sejam enviados por usuários maliciosos através de formulários HTML ou URLs e sejam executados diretamente no BD. A grande maioria dos gerenciadores de banco de dados possui vulnerabilidades que podem ser aproveitadas por invasores. Como exemplos, podem ser citados o SQL Server e o Oracle, que possuem centenas de funções e stored procedures nativos que vêm habilitados por default e constituem ferramentas extremamente úteis a ataques de injeção de SQL. Este trabalho realiza um levantamento sobre as características de ataques por SQL Injection, assim como são demonstradas algumas das principais vulnerabilidades a esse tipo de ataque, presentes em três dos principais gerenciadores de banco de dados do mercado (SQL Server, MySQL e Oracle) e propõe os melhores procedimentos a serem realizados para barrar ataques desta natureza. Palavras-chave: SQL Injection, invasão, vulnerabilidade, segurança, proteção.

15 15 1. INTRODUÇÃO 1.1 Apresentação A revolução da Internet (rede mundial de computadores) nos anos 90, conseqüência do grande desenvolvimento tecnológico promovido pela Guerra Fria (guerra psicológica entre Estados Unidos e a União soviética) e a popularização dos microcomputadores, interconectou praticamente todas as redes de computadores sobre a terra. A possibilidade de conexão com o mundo todo tornou a Internet um forte meio de comunicação e informação utilizado por milhões de pessoas. A rede mundial de computadores passou a ser parte do dia-a-dia dessas pessoas e a ser utilizada para realizar muitas tarefas importantes, dentre elas: divulgação e venda de produtos e serviços, armazenar dados importantes para acesso rápido de qualquer localização, realizar muitos tipos de transações bancárias, dentre outros fatores. O grande fluxo de informação presente na Internet, principalmente informações essenciais, a exemplo de informações sigilosas de grandes empresas e dados de contas bancárias, despertou o interesse de criminosos que passaram a estudar falhas na implementação de páginas virtuais e a desenvolver técnicas para a invasão das mesmas. A ação desses criminosos gerou uma grande preocupação para os administradores em relação à segurança de seus sites, e tornou obrigatório o conhecimento das técnicas de invasão de sites para implementação da proteção contra as mesmas. Uma das técnicas mais utilizadas para a invasão de páginas virtuais é denominada Structured Query Language (SQL) Injection ou Injeção de SQL, um problema que afeta praticamente todas as linguagens de programação que contenham uma requisição a um banco de dados (BD) na Internet. A técnica SQL injection é uma variante do método de invasão chamado Injeção de Código (Code Injection), que consiste no preenchimento de código malicioso em campos de formulários HTML (tais como campos de login, pesquisa, senha, dentre outros) para forçar acesso a um banco de dados, ter acesso a informações restritas ou até mesmo destruir informações de um servidor web. A Injeção de SQL é aplicada em sites que contenham requisições a um banco de dados e, utilizando a estrutura da linguagem de banco de dados SQL, se aproveita de falhas na implementação da requisição ao banco de dados.

16 16 Apesar de ser uma das técnicas de invasão mais utilizadas, ainda é muito comum encontrar páginas no Brasil que apresentem vulnerabilidades à Injeção de SQL. Um dos principais motivos desse grande número de páginas vulneráveis é a falta de abordagem e até preguiça de programadores em construir procedimentos de segurança nessas páginas para a validação de dados que fazem a requisição de um banco de dados. A técnica SQL Injection é difícil de ser erradicada, pois não é uma falha ao nível de software e sim uma falha ao nível da capacidade de programar. 1.2 Objetivos Objetivo Geral O objetivo deste trabalho é justificar porque a técnica de injeção de SQL funciona e fornecer procedimentos para auxiliar administradores de sistemas para web a implementar sistemas seguros contra essa vulnerabilidade Objetivos Específicos Os seguintes passos foram seguidos para a realização desse trabalho: a) Descrever e analisar os principais tipos de ataques realizados por SQL Injection a páginas da Internet; b) Mostrar algumas das principais vulnerabilidades em gerenciadores de banco de dados aproveitadas pelos invasores que utilizam essa técnica; c) Realizar testes práticos em sites a procura de vulnerabilidades; d) Propor quais os melhores procedimentos para proteger um site de ataques por SQL Injection. 1.3 Justificativa Esse tema foi escolhido pela atualidade do mesmo, a falta de abordagem existente no Brasil em relação a esse assunto e ao descaso de muitos programadores com a segurança de seus sites. É muito importante alertar e educar o programador em relação à segurança de suas aplicações na web contra ataques de criminosos. A Injeção de Código SQL é muito fácil de ser aplicada e é uma das técnicas mais exploradas na

17 17 invasão de sites e, através dessa técnica um invasor pode, por exemplo, ter acesso a áreas restritas de um site, obter privilégios de administrador, destruir informações importantes, dentre outros fatores agravantes. O desenvolvimento de sistemas para web relacionados a um banco de dados e a preocupação com a segurança e integridade desses sistemas também foram pontos influentes na escolha do tema. 1.4 Metodologia O trabalho foi desenvolvido a partir do método de pesquisa bibliográfica e através de método indutivo, utilizando levantamento de dados feitos em testes práticos realizados em sites. Os testes práticos consistiram em detectar sites vulneráveis à SQL Injection e, ao final, demonstrar na prática como seria a anatomia de um ataque realizado em um site vulnerável. Posteriormente foram propostas soluções de proteção para o mesmo. Foram utilizados no trabalho códigos SQL padrão, a estrutura de vários gerenciadores de banco de dados como MySQL, SQL Server e Oracle e a estrutura de algumas linguagens de programação como PHP, ASP e Java. 1.5 Cronograma Proposto Etapa 1 - Pesquisa bibliográfica Consiste da leitura de livros e pesquisa na Internet sobre o tema. Etapa 2 - Conceitos e ataques Descrição da técnica SQL Injection, suas formas de ataque e como são realizados os ataques.

18 18 Etapa 3 - Defesa do Projeto Etapa 4 - Vulnerabilidades Demonstrar algumas das principais vulnerabilidades aproveitadas por invasores em três dos principais gerenciadores de banco de dados do mercado. Etapa 5 - Testes Práticos Detectar sites vulneráveis à SQL Injection e demonstrar a anatomia de um ataque. Etapa 6 Métodos para Proteção Propor métodos para a proteção de sites contra a técnica de Injeção de SQL. Etapa 7 Apresentação à banca avaliadora. 1.6 Cronograma executado O cronograma executado foi muito semelhante ao cronograma proposto no projeto de monografia. A única etapa em que houve uma mudança significativa foi a primeira, pois a pesquisa bibliográfica foi utilizada durante praticamente toda a construção do trabalho final.

19 19 2. CONTEXTUALIZAÇÃO Esta seção demonstra alguns dos principais pré-requisitos necessários para o entendimento de como funciona a técnica de invasão SQL Injection. São demonstrados o protocolo HTTP e seus principais métodos de envio (GET e POST), a linguagem HTML e seus formulários, o protocolo CGI, a linguagem SQL e finalmente a técnica de invasão que deu origem a SQL Injection, a técnica denominada code injection. 2.1 HTTP Hypertext Transfer Protocol (HTTP) ou Protocolo de Transferência de Hipertexto é o protocolo responsável pela interação entre o usuário (cliente) e o servidor World Wide Web (WWW). O HTTP é a linguagem comum da Internet global moderna (GOURLEY et al, 2002). A forma mais comum de utilização do protocolo HTTP consiste na requisição de páginas de informação de um servidor pelo usuário. Estas páginas de informação utilizam a codificação HTML (Seção 2.2) e são recuperadas através de Unified Resource Locators (URLs), que são endereços que podem identificar qualquer fonte (páginas em HTML, arquivos para download, computadores, servidores web, dentre outros) localizada na Internet. Segundo Bôas et al (2001) ao ser solicitada a página pelo cliente o navegador envia uma solicitação para o servidor web que, quando recebe uma requisição, procura pela página solicitada e, caso a encontre, envia uma mensagem de confirmação e a página é visualizada no computador cliente. Porém, segundo Kou & Springstell (1997) o servidor web é somente um provedor de informações estáticas, sendo assim para obter suporte a informações dinâmicas é necessário a utilização de outro protocolo, denominado Common Gateway Interface (CGI) que será abordado na Seção Método GET O método GET é um dos principais métodos de envio de dados pertencentes ao protocolo HTTP. Este método é acionado por meio de um formulário HTML através da diretiva method=get incluída na tag <form>. Segundo Kennedy & Musciano (2002) o

20 20 método GET permite entrar em contato com o servidor que irá processar os dados do formulário anexando os dados à diretiva action do formulário, separados por um ponto de interrogação (?). Esta forma de separação pode ser visualizada no campo de endereços do navegador do usuário logo após o formulário ter sido enviado. No Código 1 é possível observar um exemplo de envio de dados utilizando o método GET. Todo o texto localizado antes do sinal de interrogação (?) indica o endereço da aplicação que irá receber e processar os dados enviados pelo formulário. Após o sinal estão anexados os dados enviados pelo formulário, no Código 1 estão sendo enviados o nome e senha de um usuário qualquer à aplicação destino. Código 1 - Envio de dados pelo método GET O método GET é um dos métodos pertencentes ao protocolo HTTP mais utilizados. Seu uso é indicado quando são necessárias transmissões mais velozes, quando não existe necessidade em manter sigilo dos dados enviados e quando os campos a serem enviados pelo formulário possuírem um número reduzido de informações (o método GET possui tamanho limitado a 255 caracteres). Para uma melhor performance na transmissão de um formulário, envie pequenos formulários com poucos e pequenos campos através do método GET (KENNEDY & MUSCIANO, 2002) Método POST Método de envio pertencente ao protocolo HTTP, destinado ao envio de grande número de informações. O método POST difere do método GET, pois, ao invés de enviar os dados pela URL, envia os dados em um bloco de informações anexados ao corpo da mensagem. Neste bloco geralmente são dadas informações como cabeçalhos extras para descrever o corpo da mensagem, como Content-Type (tipo de dado a que o conteúdo pertence) e Content-Length (tamanho do conteúdo). O uso mais comum do método POST consiste em enviar dados através de formulários HTML para scripts ou programas CGI.

21 21 Para Kennedy & Musciano (2002) se o assunto é segurança, é melhor escolher POST, pois o método GET insere os parâmetros diretamente em uma URL, local onde podem ser facilmente visualizados e capturados. Aplicações POST também possuem falhas de segurança, mas pelo menos podem contar com a encriptação de seus dados enquanto os mesmos são transmitidos ao servidor. 2.2 HTML Hipertext Markup Language ou Linguagem de Marcação de Hipertexto, a linguagem HTML consiste em uma linguagem de formatação, ou seja, descreve como será a formatação de um documento. Por esse motivo não é possível programar em HTML, pois a mesma só oferece opções para formatar textos, inserir imagens, dentre outras funções. HTML é a linguagem de codificação utilizada para construir a interface de páginas que serão exibidas na web. Segundo BÔAS et al (2001) a linguagem HTML torna possível à construção de uma interface que será visualizada através do navegador. Através da linguagem HTML é possível construir ambientes amigáveis ao usuário para que este interaja com a rede mundial. Para BÔAS et al (2001) a maior importância da linguagem HTML para programas em CGI está em ser usada como uma forma de coletar e apresentar informações ao usuário e interagir com ele. A linguagem HTML possui várias ferramentas, dentre elas os formulários. Os formulários (Seção 2.2.1) são responsáveis pela integração da linguagem HTML à programação CGI Formulários Os formulários, como ferramentas da linguagem HTML, oferecem um modelo para a entrada de dados. Os formulários são responsáveis pelo envio dos dados do usuário ao servidor web. Segundo BÔAS et al (2001) a interface de uma aplicação web é feita com HTML, no entanto existem dois sentidos para a interface, um que fornece informações e outro que obtêm dados dele. As informações são fornecidas ao usuário através dos elementos de formatação básicos da linguagem HTML, mas para atender

22 22 completamente a estrutura de uma interface de aplicação web sugerida por Bôas et al (2001) é necessária a utilização de formulários HTML. Os formulários possuem vários tipos de campos que recebem entradas do usuário para posterior envio ao servidor web. O corpo de um formulário HTML é representado no Código 2. <FORM ACTION= aplicação destino METHOD= método de envio >.. campos para preenchimento (áreas de texto, campos de. múltipla escolha, dentre outros). </FORM> Código 2 - Representação de um formulário HTML As tags (comandos) <form>...</form> representam um formulário, entre elas são inseridos os campos de preenchimento. Existem vários campos definidos pela linguagem HTML. Dentro da tag <form> são definidas informações importantes sobre os dados a serem enviados para que o programa CGI redirecione a aplicação desejada. O campo action indica o endereço (URL) da aplicação que irá receber e processar as informações enviadas (geralmente o arquivo CGI que irá processar as informações para a aplicação final) e o campo method indica o método pelo qual o navegador irá enviar os dados do usuário ao servidor para serem processados. Para este campo são utilizados os dois principais métodos de envio pertencentes ao protocolo HTTP: GET e POST. 2.3 Protocolo CGI CGI é uma tecnologia que permite a criação de páginas dinâmicas, ou seja, capazes de fornecer respostas personalizadas de acordo com alguma informação fornecida pelo usuário (BÔAS et al, 2001). O protocolo CGI permite a servidores web solicitarem recursos e aplicações externas. Segundo Kou & Springstell (1997) o protocolo CGI é uma ponte entre o servidor HTTP, o banco de dados e qualquer outra fonte de informação. O protocolo CGI recebe todas as informações coletadas de formulários de páginas em HTML e pertencentes ao servidor através dos métodos de envio do protocolo HTTP (GET e POST). As informações são redirecionadas para a aplicação

23 23 desejada (a exemplo de um banco de dados) e ao receber a resposta o programa CGI remete a mesma ao cliente geralmente em uma página codificada em HTML, segundo o esquema ilustrado na Figura 1. Segundo Bôas et al (2001) aplicações CGI podem ser usadas para tudo o que gera conteúdo dinâmico na web a exemplo de fóruns, livros de visita, formulários de compra, consulta de estoque, home banking e investimentos na bolsa de valores. Figura 1 - Esquema do CGI (adaptado de BÔAS et al, 2001) O protocolo CGI consiste num conjunto de programas que tornam possível a comunicação do servidor HTTP com outras aplicações, programas estes chamados de programas CGI. [...] um programa CGI sempre é executado no servidor web (BÔAS et al, 2001). Um programa CGI possui um ciclo de vida (Figura 2), que começa quando um servidor recebe uma requisição que acessa um programa CGI. O servidor então cria um processo com o programa CGI e passa a ele todas as informações recebidas do cliente. Quando o programa CGI termina o processamento da resposta, seu processo é encerrado e o resultado encaminhado ao navegador do usuário que fez a requisição.

24 24 Figura 2 - Ciclo de vida de um CGI (BÔAS et al, 2001) 2.4 A Linguagem SQL Structured Query Language (SQL), ou Linguagem de Consulta Estruturada, é uma linguagem de pesquisa declarativa para bancos de dados relacionais (bases de dados relacionais). Segundo Taylor (2003, p.21) a primeira coisa necessária para se entender sobre a linguagem SQL é que ela não é uma linguagem procedural a exemplo de linguagens como C, Pascal, FORTRAN, dentre outras. SQL não é procedural porque processa conjuntos de registros, ao invés de um por vez, permitindo ao usuário manipular tipos complexos de dados. SQL é utilizada para recuperar informações de um banco de dados através de consultas ou seleções que informam quais os dados pretendidos. A SQL é uma linguagem industrial padronizada (TAYLOR, 2003, p.7) especialmente desenvolvida para permitir que pessoas criem novas bases de dados, adicionem novos dados, façam a manutenção e recuperem informações em seus bancos de dados. Os principais sistemas da web que trabalham em conjunto com um banco de dados relacional utilizam gerenciadores de banco de dados que utilizam a sintaxe da

25 25 linguagem SQL. A linguagem SQL é a ferramenta mais utilizada para a comunicação com uma base de dados relacional (TAYLOR, 2003, p.21). Esta linguagem pode ser utilizada para todas as atividades relativas a um banco de dados podendo ser utilizada pelo administrador de sistemas web, pelo DataBase Administrator (DBA), por programadores, por sistemas de suporte à tomada de decisões e por outros usuários finais. A linguagem SQL é uma linguagem com um propósito especial desenvolvida para a criação e manutenção de dados de uma base de dados relacional. Embora os desenvolvedores de sistemas para manutenção de bases relacionais têm suas próprias definições de SQL, um padrão ISO/ANSI (revisado em 2003) define e controla o que é SQL (TAYLOR, 2003, p.45). Quem pretende utilizar os principais bancos de dados do mercado, como Oracle, Microsoft SQL Server, Sybase, DB/2, MySQL, PostgreSQL, entre outros, deve conhecer a linguagem SQL Comandos Básicos da linguagem SQL Como seu nome indica, a SQL é uma linguagem de acesso estruturado. Apesar das diferenças existentes entre suas implementações particulares (SQL Server, Oracle, MySQL, PostgreSQL, dentre outros), existe um grupo comum de comandos a todas elas (TAYLOR, 2003, p.45). De acordo com Racciatti (2002) para se entender como funciona um ataque por SQL Injection, é necessário ter o conhecimento de pelo menos alguns comandos básicos da linguagem SQL Padrão (Tabela 1) e suas respectivas cláusulas (Tabela 2), que são condições de seleção utilizadas para definir os dados que se deseja manipular.

26 26 Tabela 1 - Comandos básicos da linguagem SQL Comando ALTER CREATE DELETE DROP INSERT SELECT UPDATE Definição Utilizado para alterar tabelas agregando campos e trocar a definição de campos. Utilizado para criar novas tabelas, campos e índices. Utilizado para apagar registros de uma tabela da base de dados. Empregado para eliminar tabelas e índices. Utilizado para inserir dados em uma tabela. Utilizado para consultar registros de uma base de dados que satisfaçam um determinado critério. Utilizado para modificar os valores dos campos e registros especificados. Tabela 2 - Cláusulas da linguagem SQL no comando SELECT Cláusula FROM WHERE GROUP BY HAVING ORDER BY UNION Definição Utilizado para especificar a tabela a qual serão selecionados os objetos. Utilizado para especificar as condições que devem reunir os registros que serão selecionados. Utilizado para separar os registros escolhidos em grupos específicos. Utilizado para especificar a condição que deve satisfazer cada grupo. Utilizado para selecionar os registros selecionados de acordo com uma ordem específica. Utilizado para unir o resultado de duas consultas em um só resultado, este comando gera a união de conjuntos. Além dos comandos e cláusulas, são necessários operadores (Tabela 3) para realizar operações matemáticas, comparações e expressões booleanas.

27 27 Tabela 3 - Operadores da linguagem SQL Operador Nome > Maior que < Menor que <> Diferente de >= Maior ou igual a <= Menor ou igual a = Igual a AND Operador booleano para testar se mais de uma condição é verdadeira ou falsa OR Operador booleano para testar se pelo menos uma das condições é verdadeira ou falsa. BETWEEN Utilizado para especificar um intervalo de valores. LIKE Utilizado na comparação de um modelo. IN Utilizado para especificar registros de uma base de dados. Exemplos de consultas realizadas na linguagem SQL podem ser vistas nos Códigos 3 e 4. SELECT *FROM usuarios; Código 3 - Selecionando a tabela usuarios UPDATE usuarios SET password = WHERE user = admin ; Código 4 - Atualizando usuário A consulta presente no Código 3 devolve como resposta um conjunto com todos os registros da tabela usuarios e a consulta do Código 4 altera o campo password do usuário admin, para o valor especificado. Segundo Racciatti (2002) a seqüência de comandos da linguagem SQL é realizada em partes, sendo possível comparar sua execução a um arquivo em lotes, no qual suas instruções são executadas sequencialmente, para realizar a operação requerida. 2.5 Code Injection Code Injection ou Injeção de Código é o nome dado à técnica utilizada para introduzir (ou injetar) código em um programa de computador ou um sistema web, se aproveitando de falhas de segurança e vulnerabilidades dos mesmos.

28 28 Vulnerabilidades à injeção de código são falhas de programação que permitem a um invasor alterar a semântica de uma expressão em uma aplicação provendo entradas com conteúdo sintático (PIETRASZEK & BERGHE, 2005). De acordo com Milenkovic et al (2005), um dos maiores problemas de segurança é a execução de códigos maliciosos injetados. Através dessa técnica, criminosos virtuais podem obter o controle total de domínios da web, ter acesso a dados restritos e dentre outras possibilidades destruir dados. Os principais problemas gerados por essa técnica são conseqüência de situações adversas ou errôneas causadas nos sistemas atacados. O propósito do uso da injeção de código consiste em burlar ou modificar a intenção original da funcionalidade do programa, gerar situações anômalas e obter respostas inesperadas da aplicação atacada. Na maioria dos casos, o propósito do invasor em conduzir um ataque por injeção de código contra uma aplicação web é causar imediatamente uma resposta de um host [...] (OLLMANN, 2004). A injeção de código pode ser classificada em duas categorias, a de uso intencional e a de uso não intencional: O uso intencional pode ser maligno ou benigno. O uso maligno é o mais comum, as técnicas de injeção de código são populares em invasões de sistemas para obter (roubar) informações, privilégios de administrador ou acessos não autorizados. O uso benigno da injeção de código consiste na utilização dessa técnica para testar o comportamento de um programa e descobrir suas falhas e vulnerabilidades para posterior correção das mesmas. O uso não intencional de code injection acontece quando usuários finais causam situações adversas em um programa sem intenção. Por exemplo, o que um usuário pode considerar como caracteres válidos, podem ter sido considerados pelo programador do sistema como caracteres especiais. Ao assumir esses caracteres como normais na execução do sistema, o usuário pode gerar situações imprevistas, tendo como conseqüências um acesso indevido, um erro fatal de sistema, dentre outros fatores. Existem vários tipos de injeção de código utilizados por hackers principalmente para invasão de aplicações da Internet, a exemplo de SQL Injection, PHP Injection, ASP Injection, Javascript Injection, dentre outros.

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

Fonte: http://www.online-security-solution.com/ - Illustration by Gaich Muramatsu

Fonte: http://www.online-security-solution.com/ - Illustration by Gaich Muramatsu Fonte: http://www.online-security-solution.com/ - Illustration by Gaich Muramatsu Prof. Hederson Velasco Ramos Uma boa maneira de analisar ameaças no nível dos aplicativo é organiza las por categoria de

Leia mais

Ameaças, riscos e vulnerabilidades Cont. Objetivos

Ameaças, riscos e vulnerabilidades Cont. Objetivos Ameaças, riscos e vulnerabilidades Cont. Prof. Esp. Anderson Maia E-mail: tecnologo.maia@gmail.com Objetivos entender a definição dos termos hacker, cracker e engenharia social; compreender a anatomia

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Conteúdo Programático de PHP

Conteúdo Programático de PHP Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Editora Carlos A. J. Oliviero Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Orientado por Projeto 1a Edição 2 Reimpressão São Paulo 2011 Érica Ltda. Noções Livrarse Preparação muitas muita Sumário

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

Leia mais

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança 3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

UNIVERSIDADE FEDERAL DE PELOTAS

UNIVERSIDADE FEDERAL DE PELOTAS Usando um firewall para ajudar a proteger o computador A conexão à Internet pode representar um perigo para o usuário de computador desatento. Um firewall ajuda a proteger o computador impedindo que usuários

Leia mais

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

TCEnet. Manual Técnico. Responsável Operacional das Entidades

TCEnet. Manual Técnico. Responsável Operacional das Entidades TCEnet Manual Técnico Responsável Operacional das Entidades 1 Índice 1. Introdução... 3 2. Características... 3 3. Papéis dos Envolvidos... 3 4. Utilização do TCEnet... 4 4.1. Geração do e-tcenet... 4

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Elaborado por SIGA-EPT. Projeto SIGA-EPT: Manual do Usuário Almoxarifado

Elaborado por SIGA-EPT. Projeto SIGA-EPT: Manual do Usuário Almoxarifado Elaborado por SIGA-EPT Projeto SIGA-EPT: Manual do Usuário Almoxarifado Versão Dezembro - 2009 Sumário 1 Introdução 5 1.1 Entrando no sistema e repassando as opções................... 5 1.2 Administração......................................

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

PAINEL GERENCIADOR DE E-MAILS

PAINEL GERENCIADOR DE E-MAILS Este manual foi criado com o objetivo de facilitar o gerenciamento de suas contas de e-mail. Com ele, o administrador poderá criar e excluir e-mails, alterar senha, configurar redirecionamento de contas,

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0

Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0 Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0 Alt-N Technologies, Ltd 1179 Corporate Drive West, #103 Arlington, TX 76006 Tel: (817) 652-0204 2002 Alt-N Technologies. Todos os Direitos

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. 1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL):

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL): Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL): Nos últimos anos uma das vulnerabilidades mais exploradas por usuários mal-intencionados é a injeção de SQL, onde o atacante realiza uma

Leia mais

Análise de Ponto de Função

Análise de Ponto de Função Complemento para o Curso Análise de Ponto de Função FUNÇÕES DO TIPO DADO O termo Arquivo não significa um arquivo do sistema operacional, como é comum na área de processamento de dados. Se refere a um

Leia mais

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

SUMÁRIO Acesso ao sistema... 2 Atendente... 3 SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente

WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente www.plugin.com.br 1 ÍNDICE Prefácio...3 Sobre Este Manual... 3

Leia mais

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Desenvolvimento em Ambiente Web Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Internet A Internet é um conjunto de redes de computadores de domínio público interligadas pelo mundo inteiro, que tem

Leia mais

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho. Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

O Gerenciamento de Documentos Analógico/Digital

O Gerenciamento de Documentos Analógico/Digital Tipos de GED: Document imaging Document management Document Imaging / Document Management O Gerenciamento de Documentos Analógico/Digital Mundo analógico Criação Revisão Processamento Arquivo Mundo digital

Leia mais

ÍNDICE. 1. Introdução...2. 2. O que é o Sistema Mo Porã...2. 3. Como acessar o Site Mo Porã...3. 4. Cadastro do Sistema Mo Porã...

ÍNDICE. 1. Introdução...2. 2. O que é o Sistema Mo Porã...2. 3. Como acessar o Site Mo Porã...3. 4. Cadastro do Sistema Mo Porã... ÍNDICE 1. Introdução...2 2. O que é o Sistema Mo Porã...2 3. Como acessar o Site Mo Porã...3 4. Cadastro do Sistema Mo Porã...4 5. Navegando no Site Mo Porã...6 5. 1 Manual de ajuda do sistema Mo Porã...7

Leia mais

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA Sumário Construção de sistema Administrativo... 1 Sistema de Login... 2 SQL INJECTION... 2 Técnicas para Evitar Ataques... 2 Formulário de Login e Senha fará parte do DEFAULT... 5 LOGAR... 5 boas... 6

Leia mais

Desenvolvimento e disponibilização de Conteúdos para a Internet

Desenvolvimento e disponibilização de Conteúdos para a Internet Desenvolvimento e disponibilização de Conteúdos para a Internet Por Matheus Orion OWASP A Open Web Application Security Project (OWASP) é uma entidade sem fins lucrativos e de reconhecimento internacional,

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS CST em Análise e Desenvolvimento de Sistemas 5ª. Série Programação e Design para Web A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Fundamentos dos Sistemas de Informação Organização de Dados e Informações Fundamentos dos Sistemas de Informação Organização de Dados e Informações http://professor.fimes.edu.br/milena milenaresende@fimes.edu.br Sistema de Gerenciamento de Bases de Dados (DBMS) A implementação

Leia mais

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01 EDITORA FERREIRA MP/RJ NCE EXERCÍCIOS 01 GABARITO COMENTADO 01 Ao se arrastar um arquivo da pasta C:\DADOS para a pasta D:\TEXTOS utilizando se o botão esquerdo do mouse no Windows Explorer: (A) o arquivo

Leia mais

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais

O melhor do PHP. Por que PHP? CAPÍTULO 1. Uma Pequena História do PHP

O melhor do PHP. Por que PHP? CAPÍTULO 1. Uma Pequena História do PHP CAPÍTULO 1 O melhor do PHP Este livro levou bastante tempo para ser feito. Venho usando agora o PHP por muitos anos e o meu amor por ele aumenta cada vez mais por sua abordagem simplista, sua flexibilidade

Leia mais

CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET

CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET Para utilizar um banco de dados com um aplicativo ASP.NET, é necessário criar uma conexão de banco de dados no Macromedia Dreamweaver MX.

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,

Leia mais

Internet - A rede Mundial

Internet - A rede Mundial Internet - A rede Mundial Fernando Albuquerque 061-2733589 fernando@cic.unb.br O que é? Qual a sua história? Como funciona? Como está organizada? Quais os serviços? Como acessar? Quais os cuidados? Qual

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

Conceitos de extensões Joomla!

Conceitos de extensões Joomla! capítulo 1 Conceitos de extensões Joomla! Entendendo o que é extensão Extensão pode ser entendida como uma pequena aplicação desenvolvida com regras de construção estabelecidas pelo ambiente Joomla!. É

Leia mais

Universidade Federal do Estado do Rio de Janeiro UNIRIO. Guia para criação do banco de dados de redes sociais

Universidade Federal do Estado do Rio de Janeiro UNIRIO. Guia para criação do banco de dados de redes sociais Universidade Federal do Estado do Rio de Janeiro UNIRIO Programa de Pós-Graduação em Informática Guia para criação do banco de dados de redes sociais Edvaldo Artmann de Oliveira edvaldo.oliveira@uniriotec.br

Leia mais

Manual do Usuário. E-DOC Peticionamento Eletrônico TST

Manual do Usuário. E-DOC Peticionamento Eletrônico TST E-DOC Peticionamento APRESENTAÇÃO O sistema E-DOC substituirá o atual sistema existente. Este sistema permitirá o controle de petições que utiliza certificado digital para autenticação de carga de documentos.

Leia mais

Programação para a Web - I. José Humberto da Silva Soares

Programação para a Web - I. José Humberto da Silva Soares Programação para a Web - I José Humberto da Silva Soares Fundamentos de Internet Rede Mundial de Computadores; Fornece serviços, arquivos e informações; Os computadores que têm os recursos são chamados

Leia mais

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação

Leia mais

Aula 1 Acesso a Banco de Dados

Aula 1 Acesso a Banco de Dados Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL Documento: Tutorial Autor: Iuri Sonego Cardoso Data: 27/05/2005 E-mail: iuri@scripthome.cjb.net Home Page: http://www.scripthome.cjb.net ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Mostrar área de trabalho.scf. Manual do Produto EDI.

Mostrar área de trabalho.scf. Manual do Produto EDI. Mostrar área de trabalho.scf Manual do Produto EDI. ÍNDICE MANUAL DO PRODUTO EDI....3 1. O QUE É O EDI?...3 1.1. VANTAGENS... 3 1.2. FUNCIONAMENTO... 3 1.3. CONFIGURAÇÃO NECESSÁRIA... 3 2. UTILIZANDO O

Leia mais

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furbbr Resumo. Este artigo apresenta a especificação

Leia mais

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Objetivo. O objetivo da disciplina é conhecer os princípios da programação de

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo alexcamargoweb@gmail.com

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo alexcamargoweb@gmail.com UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ENGENHARIA DE COMPUTAÇÃO Segurança em aplicações web: pequenas ideias, grandes resultados alexcamargoweb@gmail.com Sobre o professor Formação acadêmica: Bacharel

Leia mais

OCOMON PRIMEIROS PASSOS

OCOMON PRIMEIROS PASSOS OCOMON PRIMEIROS PASSOS O OCOMON ainda não possui um arquivo de Help para atender a todas questões relacionadas ao sistema. Esse arquivo serve apenas para dar as principais instruções para que você tenha

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Prova de pré-requisito

Prova de pré-requisito Prova de pré-requisito Curso Python e Django 1. Ao se acessar o site www.google.com qual comando e parâmetros são enviados para o servidor pelo navegador? a. GET / b. GET www.google.com c. PAGE index.html

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

Sistema de Chamados Protega

Sistema de Chamados Protega SUMÁRIO 1. INTRODUÇÃO... 3 2. REALIZANDO ACESSO AO SISTEMA DE CHAMADOS... 4 2.1 DETALHES DA PÁGINA INICIAL... 5 3. ABERTURA DE CHAMADO... 6 3.1 DESTACANDO CAMPOS DO FORMULÁRIO... 6 3.2 CAMPOS OBRIGATÓRIOS:...

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Manual do usuário - Service Desk SDM - COPASA. Service Desk Manual do usuário - Service Desk SDM - COPASA Service Desk Sumário Apresentação O que é o Service Desk? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial

Leia mais

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet. 1. Descrição Geral Este manual descreve as operações disponíveis no módulo VTWEB Client, cuja finalidade é gerenciar cadastros de funcionários, realização de pedidos e controle financeiro dos pedidos.

Leia mais

Livro Caixa. www.controlenanet.com.br. Copyright 2015 - ControleNaNet

Livro Caixa. www.controlenanet.com.br. Copyright 2015 - ControleNaNet www.controlenanet.com.br Copyright 2015 - ControleNaNet Conteúdo Tela Principal... 3 Como imprimir?... 4 As Listagens nas Telas... 7 Clientes... 8 Consulta... 9 Inclusão... 11 Alteração... 13 Exclusão...

Leia mais

Treinamento. DBA Oracle 11g. Duração: 120 horas

Treinamento. DBA Oracle 11g. Duração: 120 horas Treinamento DBA Oracle 11g Duração: 120 horas Neste curso no primeiro módulo (Introdução ao Oracle 11g SQL e PL_SQL) é oferecido um curso introdutório à tecnologia do banco de dados Oracle 11g. Também

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto UM NOVO CONCEITO EM AUTOMAÇÃO Série Ponto POR QUE NOVO CONCEITO? O que é um WEBPLC? Um CP na WEB Por que usar INTERNET? Controle do processo de qualquer lugar WEBGATE = conexão INTERNET/ALNETII WEBPLC

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais