ESTUDO DE TÉCNICAS DE PROTEÇÃO CONTRA INVASÕES POR SQL INJECTION FELIPE CALLORI
|
|
- Pedro Galindo Bugalho
- 8 Há anos
- Visualizações:
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; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.
Leia maisBoas 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 maisFonte: 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 maisAmeaç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 maisProgramando 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 maisNoçõ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 maisCAPÍ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 maisProgramaçã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 maisDesenvolvendo 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 maisIntroduçã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 maisCONTRA 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 maisConteú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 maisAplicaçã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 maisFaç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 maisProgramaçã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 mais3 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 maisAula 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 maisManual 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 maisBANCO 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 maisCurso 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 maisSaté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 maisIntranets. 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 maisSistema 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 maisDesenvolvendo 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 maisUNIVERSIDADE 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 mais2 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 mais4. 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 maisBanco 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 maisTCEnet. 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 maisEntendendo 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 mais4 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 maisElaborado 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 maisSQL 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 maisPAINEL 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 mais2 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 maisComo 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 maiswww.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 mais1. 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 maisMANUAL 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 maisArpPrintServer. 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 maisNomes: 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 maisAná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 maisSUMÁ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 maisManual 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 maisIntroduçã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 maisBanco 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 maisWebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente
WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente www.plugin.com.br 1 ÍNDICE Prefácio...3 Sobre Este Manual... 3
Leia maisDesenvolvimento 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 mais3. 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 maisConceitos 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 maisUm 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 maisO 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ã...4 5. Navegando no Site Mo Porã...6 5. 1 Manual de ajuda do sistema Mo Porã...7
Leia maisAULA 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 maisDesenvolvimento 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 maisIntroduçã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 maisATIVIDADES 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 maisProf. 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 maisFundamentos 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 maisEDITORA 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 maisNORMA 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 maisNovell. 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 mais5 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 maisO 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 maisCAPÍ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 maisSQL. 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 maisROTEIRO 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 maisInternet - 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 maisINFORMÁ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 maisConceitos 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 maisUniversidade 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 maisManual 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 maisProgramaçã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 maisTUTORIAL 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 maisAula 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 maisUFG - 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 maisALTERNATIVA 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 maisPrincipais 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 maisMostrar á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 maisSoftware 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 maisCurso 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 maisIFPE. 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 maisFAÇ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 maisSeguranç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 maisOCOMON 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 maisWorld 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 maisProva 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 maisLINGUAGEM 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 maisSistema 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 maisProgramaçã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 maisManual 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 maisEstá 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 maisLivro 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 maisTreinamento. 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 maisOrientaçã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 maisUM 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 maisAUTOR: 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