24
DIOGO OLIVEIRA DE ARAÚJO SISTEMA DE ENSINO PRESENCIAL CONECTADO ANALISE E DESENVOLVIMENTO DE SISTEMAS PRODUÇÃO TEXTUAL INTERDISCIPLINAR INDIVIDUAL

Trabalho Individual Unopar (Diogo)

Embed Size (px)

Citation preview

Page 1: Trabalho Individual Unopar (Diogo)

DIOGO OLIVEIRA DE ARAÚJO

SISTEMA DE ENSINO PRESENCIAL CONECTADOANALISE E DESENVOLVIMENTO DE SISTEMAS

PRODUÇÃO TEXTUAL INTERDISCIPLINAR INDIVIDUAL

Page 2: Trabalho Individual Unopar (Diogo)

Sobral2013

Sobral-2013

DIOGO OLIVEIRA DE ARAÚJO

Page 3: Trabalho Individual Unopar (Diogo)

Sobral2012

PRODUÇÃO TEXTUAL INTERDISCIPLINAR INDIVIDUAL

Trabalho de Produção Textual (Individual ou Grupo) apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média semestral nas disciplinas de Seminários V, Programação Web I, Interface Homem-computador, Estágio Curricular Obrigatório I – TCC, Sistemas Operacionais, Projeto de Sistemas, Redes de Computadores, Metodologia Científica

Orientadores: Profª. Veronice de Freitas, Prof. Paulo K.Nishitani, Prof. Everson M. Morais, Prof Marco I.Hisatorni, Profª Adriane A, Loper, Prof. Reinaldo B. Nishikawa, Prof. Lois C. Perini

Page 4: Trabalho Individual Unopar (Diogo)

SUMÁRIO

1 INTRODUÇÃO.........................................................................................................3

2 DESENVOLVIMENTO..............................................................................................4

3 CONCLUSÃO...........................................................................................................7

4 REFERÊNCIAS........................................................................................................8

Page 5: Trabalho Individual Unopar (Diogo)

1 INTRODUÇÃO

Este trabalho trata de uma necessidade que uma empresa de locação de livros possui, com isso foi elaborado um sistema que ira facilitar e dar rapidez ao atendimento do cliente. Também visando organizar melhor o seu estoque, e as necessidades de aquisições de novos livros.Para a criação deste sistema foi necessário entender como a empresa funciona e conhecer todos os requisitos que serão necessários para atender as necessidades e os seus objetivos.

Page 6: Trabalho Individual Unopar (Diogo)

DESENVOLVIMENTO

1 – Considerando que nossa locadora também será composta por livros digitais, pesquise junto à internet pelo menos 6 livros de Redes De Computadores Referenciando obra e autor

  1-   OBRA: Segurança De Redes          AUTOR: Tom Thomas          ANO: 2007          EDITORA: Ciência Moderna

2 - OBRA: Criptografia e Segurança de Redes          AUTOR: William Stallings          ANO: 2007          EDITORA: Prentice-Hall

    3 – Redes De Computadores – Teoria E Pratica            AUTOR: Douglas Rocha Mendes            ANO: 2007             Editora: Novatec

    4 – Arquitetura De Redes De Computadores            AUTOR: Luis P. Maia            ANO: 2009            Editora: LTC

5 – Infra-Estrutura Elétrica Para Rede De Computadores            AUTOR: José Maurício Pinheiro            ANO: 2008             Editora: Ciência Moderna

6 – Use a Cabeça! Redes De Computadores            AUTOR: Ryan Benedetti e Al Anderson            ANO: 2010

Page 7: Trabalho Individual Unopar (Diogo)

            Editora: Alta Books

2 – Quando trabalhamos a comunicabilidade, cujo objetivo deste conceito é “como” (design) a informação é apresentada ao usuário para trazer benefícios. Como podemos aplicar este conceito em nossa locadora de livros. Justifique

No estudo de caso proposto (Nossa Locadora de Livros) e trabalhando dentro do eixo temático, podemos aplicar em nosso sistema interface gráfica de apresentação intuitiva e amigável, buscando assim uma maior interatividade homem-ambiente, sempre na visão de prestar o melhor para nossos clientes. Uma vez o cliente se sentindo “confortável” na navegabilidade o teremos sempre como cliente e como divulgador dos nossos serviço. Visando a acessibilidade poderemos implementar aplicativos para usuários com deficiência, nas variadas formas (auditiva, visual, cognitiva, déficit de aprendizagem e ademais), buscando assim expandir a clientela – usuários – do nosso sistema e consumidores dos nossos produtos, ressalvando, sem deixar de cumprir nosso papel social e inclusivo.

Somando a estrutura estética com as funcionalidades do aplicativo sempre lembrando da segurança do sistema e do banco de dados é que pensamos nestas implementações, claro, sem esquecer de facilitar o uso de nossa ferramenta. O resultado esperado com o aprimoramento neste estudo de caso e o aumento significativo de visitas de prováveis consumidores, gratuitos divulgadores e uma expansão no mercado virtual.

3 – Realize uma pesquisa sobre os sistemas multiprogramáveis e com múltiplos processadores, identificando suas características predominantes.

Sistemas Multiprogramáveis / Multitarefa

Os sistemas multiprogramáveis ou multitarefa são uma evolução dos sistemas monoprogramáveis. 

Neste tipo de sistema, por exemplo, enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste mesmo intervalo de tempo. Nesse caso, podemos observar o compartilhamento da memória e do processador. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus diversos recursos, como memória, processador e periféricos, de forma ordenad e protegida, entre os diversos programas.

A principal vantagem dos sistemas multiprogramáveis é a redução de custos em função da possibilidade de compartilhamento dos diversos recursos entre as diferentes aplicações. Além disso, sistemas multiprogramáveis possibilitam

Page 8: Trabalho Individual Unopar (Diogo)

na média a redução total do tempo de execução das aplicações. Apesar de mais eficientes que os monoprogramáveis, são de implementação muito mais complexa.

A partir do número de usuários que interagem com o sistema operacional, podemos classificar os sistemas multiprogramáveis como monousuário ou multiusuário.

Sistemas multiprogramáveis monousuário são encontrados em computadores pessoais e estações de trabalho, onde há apenas um único usuário interagindo com o sistema. Neste caso, existe a possibilidade de execução de diversas tarefas ao mesmo tempo, como a edição de um texto, uma impressão e o acesso à Internet. 

Sistemas multiprogramáveis multiusuário são ambientes interativos que possibilitam a diversos usuários conectarem-se ao sistema simultaneamente.

Os sistemas multiprogramáveis ou multitarefa podem ser classificados pela forma com que suas aplicações são gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real. Um sistema operacional pode suportar um ou mais desses tipos de processamento, dependendo de sua implementação.

Sistemas com Múltiplos Processadores

Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes, para serem executadas simultaneamente em mais de um processador.

Com múltiplos processadores, foi possível a criação de sistemas computacionais voltados, principalmente, para processamento científico, aplicado, por exemplo, no desenvolvimento aeroespacial, prospecção de petróleo, simulações, processamento de imagens e CAD. A princípio, qualquer aplicação que faça uso intensivo da UCP será beneficiada pelo acréscimo de processadores ao sistema. A evolução desses sistemas deve-se, em grande parte, ao elevado custo de desenvolvimento de processadores de alto desempenho.

Os conceitos aplicados ao projeto de sistemas com múltiplos processadores incorporam os mesmos princípios básicos e benefícios apresentados na multiprogramação, além de outras características e vantagens específicas como escalabilidade, disponibilidade e balanceamento de carga.

Escalabilidade é a capacidade de ampliar o poder computacional do sistema, apenas adicionando novos processadores. Em ambientes com um único processador, caso haja problemas de desempenho, seria necessário substituir

Page 9: Trabalho Individual Unopar (Diogo)

todo o sistema por uma outra configuração com maior poder de processamento. Com a possibilidade de múltiplos processadores, basta acrescentar novos processadores à configuração.

Disponibilidade é a capacidade de manter o sistema em operação, mesmo em casos de falhas. Neste caso, se um dos processadores falhar, os demais podem assumir suas funções de maneira transparente aos usuários e suas aplicações, embora com menor capacidade de computação.

Balanceamento de carga é a possibilidade de distribuir o processamento entre os diversos processadores da configuração, a partir da carga de trabalho de cada processador, melhorando, assim, o desempenho do sistema como um todo.

Um fator-chave no desenvolvimento de sistemas operacionais com múltiplos processadores é a forma de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de entrada e saída. Em função desses fatores, podemos classificar os sistemas com múltiplos processadores em fortemente acoplados ou fracamente acoplados.

4 - Faça uma pesquisa em segurança de códigos PHP.

As falhas de segurança em servidores web são um assunto, cada vez mais, em evidência, e é alarmante o crescimento de websites que sofrem ataques de todos os tipos. É necessário que os profissionais estejam sempre bem preparados e conheçam as maneiras corretas de impedir que vulnerabilidades sejam exploradas.Segurança em PHP é uma obra de referência com conceitos e dicas preciosas tanto para programadores quanto para administradores de sistemas que têm como objetivo manter servidores e scripts PHP seguros e confiáveis.Além de abordar aspectos de programação segura referentes à linguagem PHP, o leitor encontrará dicas de como programar de maneira eficiente e como configurar o servidor web e as conexões com banco de dados de forma segura para minimizar as possibilidades de falhas na segurança.

Blindando Seu Código PHP

Um programador tem que ser desconfiado, sempre esperar o pior, do usuário e

principalmente de outros programadores. O mundo dos bits tem suas hienas à

Page 10: Trabalho Individual Unopar (Diogo)

espreita para sugar todos os dados do seu website e depois te deixar com uma

dor de cabeça das mais violentas.

Nos ataques, conhecidos como injeção de código e sql injection o objetivo é se

aproveitar de possíveis brechas de segurança no seu script e inserir instruções

que darão acesso ao invasor, a todas as informações do seu banco de dados.

E não é porque você não fez um website para uma multinacional ou portal que

não precisa se preocupar com ataques. Os scripts de ataque não procuram por

tamanho do website, mas por dados.

As duas modalidades mais comuns nas tentativas de injeção de código são

através de formulários e urls. Sendo assim você deve se preocupar tanto em

validar as informações inseridas pelo usuário, como a estrutura das suas

páginas e como os dados são passados entre elas.

O PHP fornece uma ampla gama de funções para validação de dados. Vamos

conhecê-las e aprender a tornar nossos scripts verdadeiras fortalezas.

Injeção De Código Na URL

A criação de urls amigáveis por si só já ajuda a evitar esse tipo de ataque. Ele

altera os valores das variáveis que são passados de uma página para outra.

Page 11: Trabalho Individual Unopar (Diogo)

Um exemplo comum é quando são listados os produtos à venda no website.

Em uma página são mostradas somente a foto e o preço, ao clicar sobre eles é

passada a “id” correspondente para outra página que mostra os detalhes. A url

no caso fica assim:

http://www.site.com/descricao.php?id=10

A consulta é essa:

<?php

$id = $_GET[‘id’] //10$busca = mysql_query(“SELECT * FROM produtos WHERE id=’$id’”);// $busca = mysql_query(“SELECT * FROM produtos WHERE id=10”);

?>

Mas o invasor deseja ver mais que apenas os detalhes do produto. Então ele

se utiliza de uma SQL-Injection clássica, e altera o endereço para pesquisa:

http://www.site.com/descricao.php?id=’ OR 1=1

Veja o que ocorre devido à falta de validação:

<?php$id = $_GET[‘id’] //’ OR 1=1$busca = mysql_query(“SELECT * FROM produtos WHERE id=’$id’”);// $busca = mysql_query(“SELECT * FROM produtos WHERE id=’’ OR 1=1”);?>

A consulta não vai encontrar o “id” vazio, mas considera que 1 é igual a 1. E

como estamos falando de lógica, ela vai ser considerada verdadeira e vai

retornar todos os registros da tabela! E se ao invés da tabela produtos fosse a

tabela usuários? Imaginou o tamanho do problema?

Se Protegendo Com O filter_var

É muito simples se proteger contra esse ataque. Como os valores das ids são

números, é só garantir que o valor passado seja numérico, pois as tentativas

de SQL-Injection sempre utilizam strings.

Page 12: Trabalho Individual Unopar (Diogo)

<?php

$id = $_GET[‘id’] ;//  ‘ OR 1=1$id = filter_var($id, FILTER_SANITIZE_NUMBER_INT); //resulta em 11

?>

Simples, não? A função só deixou número e nossa consulta vai ocorrer como o

esperado.

A função filter_var é uma grande facilitadora nas validações. Ela só precisa que

você informe qual variável será analisada, o que você quer checar e se existe

alguma ressalva.

A sintaxe simplificada da função é esta:

filter_var ($variable, $filter, $options)

Com ela você pode validar também endereços de e-mail, ips, floats, urls,

caracteres especiais. Uma função bastante versátil. Veja mais sobre ela na

documentação do PHP (http://docs.php.net/manual/pt_BR/function.filter-

var.php)

int()

Mas se você quer permitir somente números como valor da variável, o código

fica desta maneira:

<?php

$id = (int)$_GET[‘id’] ;//  ‘ OR 1=1echo $id // 0

?>

Como o valor passado é uma string, na tentativa de conversão o resultado será

nulo, ou numericamente 0. E problema resolvido!

Para tornar o prejuízo menor, você também pode limitar o retorno das

consultas com o LIMIT.

Page 13: Trabalho Individual Unopar (Diogo)

Acima trabalhamos apenas em garantir que estamos recebendo um número. E

é consideravelmente mais fácil do que garantir que a string que nós esperamos

é a que esta sendo passada. Vamos ao trabalho.

Validando Strings

Você possui um blog onde posta suas idéias e repassa conhecimento. Tem

espaço para comentários. Tudo muito democrático. Você acredita na boa

intenção das pessoas e não se preocupa em validar os dados (ou seria

preguiça?). Então vem um desocupado e resolve comentar nos seus artigos

inserindo um link para a página dele esperando melhorar de posição nas

pesquisas do Google. E depois desse vem outro e mais outro. Fazem uma

festa nos comentários.

htmlspecialchars() e htmlentities()

Para dar um jeito nestes fanfarrões você pode bloquear os caracteres HTML

que são inseridos nos comentários. Para isso existe a

função htmlspecialchars().Ela converte caracteres que possuem significado

para o HTML (&, “, ‘,). Ele transforma, por exemplo, aspas duplas em " . A

sintaxe é

htmlspecialchars($string, $quote_style, $charset, $double_encode)

O primeiro parâmetro é a variável a ser analisada, no seguinte você informa o

que será feito com aspas duplas e simples. Por padrão ele converte somente

aspas duplas. No terceiro argumento você informa a codificação dos caracteres

e no último você informa se deseja não converter aspas duplas.

<?php

$variavel = htmlspecialchars(“<a href=’http://www.site.com’>Link</a>”);echo $variavel // &lt; a href=&#039; http://www.site.com &#039;>Link</a>&lt;

?>

Um parente do htmlspecialchars() é o htmlentities() que abrange mais alguns

caracteres, mas trabalha com a mesma essência. Para reverter a codificação

utilizehtml_entity_decode().

strip_tags()

Page 14: Trabalho Individual Unopar (Diogo)

Uma terceira maneira de lidar com tags HTML e também PHP é utilizando

a strip_tags(), que retira as tags da string. Primeiro a sintaxe:

strip_tags($string, $allowable_tags)

Você fornece a string a ser tratada e resolver permitir a tag

, então preenche o segundo parâmetro.

<?php

$texto = '<p>Texto.</p><!-- Comment --> <a href="#ancora">Link</a>';echo strip_tags($texto); // Texto. Link

?>

Com apenas uma função você se livra das tags indesejadas! Bem… Tem

alguns problemas. Se a tag estiver pela metade ou incompleta, pode ocorrer de

ser retirado mais caracteres que o necessário. Se você permitir uma tag, os

atributos inseridos nela não serão validados e isso abre uma brecha para

manipular o código.

addslashes()

Esta função adiciona uma barra invertida antes da aspas simples, duplas, barra

invertida e valores nulos. Você só precisa passar a string a ser alterada.

Mas antes de utilizar o addslashes() veja se a diretiva magic_quotes_gpc do

PHP esta setada. Pois ela faz o mesmo trabalho automaticamente. Para

descobrir se ela esta setada execute:

Se ela estiver on não utilize o addslashes() caso contrário serão aplicadas duas

barras invertidas.

Page 15: Trabalho Individual Unopar (Diogo)

mysql_real_escape_string()

Você pode dizer que existe uma grande variedade de funções para tratar aspas

e se estiver se perguntando qual a finalidade, volte um pouco no início do

tutorial. Veja como uma SQL-Injection utiliza aspas. Isso porque nas consultas

mysql, os termos precisam estar entre aspas. Para lidar em última instância

com elas existe também omysql_real_escape_string(). Com a seguinte sintaxe:

mysql_real_escape_string($string, $link_identifier)

<?php

$valida = mysql_real_escape_string($_POST[‘variavel’]);

?>

Se você tiver utilizado o addslashes(), não utilize

o mysql_real_escape_string()senão serão aplicadas duas barras invertidas ao

invés de somente uma.

preg_replace()

Esta não é uma função para validação, mas funciona muito bem como mais

uma ferramenta de proteção.

preg_replace($pattern, $replacement, $subject)

Ela procura os termos listados no primeiro parâmetro e substitui estes, pelos

caracteres do parâmetro seguinte, analisando a string apontada no ultimo

parâmetro.

<?php

$recebe = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop

table|show tables)/"),'', $string);  

?>

No código acima a função procura pelas palavras reservadas do mysql que

possam existir na variável “$string” e as substitui por nada. O sql_regcase no

meio é para que a busca seja case insensitive.

Page 16: Trabalho Individual Unopar (Diogo)

Juntando As Partes

Sem dúvida funções que nos ajudam a validar e tratar os dados vindos do

usuário não faltam. Claro que não podemos esperar que utilizando apenas uma

delas nosso trabalho esteja feito. Por isso é importante saber o que cada uma

faz para que possamos utilizá-las em conjunto e dificultar a ação dos invasores.

Vamos criar uma pequena função para validar strings.

<?php

   function AntiSqlInjection($recebe)   {

       // Verifica a configuração se "magic_quotes_gpc" esta setado, caso não

esteja aplicamos o addslashes     if (!get_magic_quotes_gpc)     {       addslashes($recebe);     }       // Limpamos as tags HTML       $recebe = strip_tags($recebe);            // Procuramos as palavras reservadas sql e deletamos

       $recebe = preg_replace(sql_regcase("/(from|select|insert|delete|where|

drop table|show tables)/"),'', $recebe);  

       return $recebe;   }

$string = "select alguma coisa e delete";

$texto = AntiSqlInjection($string);echo $texto; // alguma coisa e

?>

Este script pode ser melhorado e se tornar ainda mais útil, mas ajuda a

entender como juntar as partes.

Page 17: Trabalho Individual Unopar (Diogo)

Procurar formas de manter seus códigos e aplicações seguras deve ser uma

constante para você como programador. Não se contente apenas em utilizar as

funções mostradas aqui, pois as tentativas de invasão tomam as mais diversas

formas, como submissões consecutivas, upload de arquivos maliciosos e

outras que se fossem analisadas aqui tornariam o tutorial gigantesco.

5 – (Marco) Considerando o estudo de caso “Nossa Locadora de Livros”, descreva como você atenderia as necessidades deste projeto com base nos conhecimentos da disciplinas de Projetos de Sistemas.

  I) Elaborar a relação das atividades necessárias para a análise do projeto do sistema, com os respectivos responsáveis (papéis).  II) Desenvolver o cronograma das atividades desenvolvidas no item I.

Componente da equipe Função

RESPONSÁVEL PELO

PROJETO (GERENTE)

Gerente do projeto

Responsável pela elaboração do plano de projeto

Responsável pela integração das partes do projeto

Responsável pela elaboração e gerenciamento de cronograma

Programador

Revisor de artefatos

SUBGERENTE

Subgerente do projeto

Responsável pela elaboração do plano de projeto

Responsável pela elaboração do site

Responsável pela atualização do site

Programador

Page 18: Trabalho Individual Unopar (Diogo)

Revisor de artefatos

SUPERVISOR

(SUBGERENTE)

Subgerente do projetoResponsável pela elaboração do documento de Responsável por modelagemProgramadorRevisor de artefatos

DESENVOLVEDORDesenvolvedorResponsável pela elaboração do documento de ProgramadorRevisor de artefatos

4 CONCLUSÃO

Page 19: Trabalho Individual Unopar (Diogo)

Foram levantadas as possibilidades e recursos para informatizar a livraria, com

possibilidades de recursos tecnológicos e recursos físicos. Parte importante

deste trabalho foi também poder focar nas nossas responsabilidades sociais

tanto ética como moral, e com os devidos cuidados com o meio ambiente e a

comunidade onde o empreendimento estará inserido. Entendo também, que

neste trabalho houve um complemento dos trabalhos anteriores, sendo que na

medida em que vamos aprofundando os nossos conhecimentos, mais amplas

são as abordagens para o desenvolvimento do projeto.

5 REFERÊNCIAS

Page 20: Trabalho Individual Unopar (Diogo)

AAKER, David Austin. Criando e administrando marcas de sucesso. São Paulo:

Futura, 1996.

ALVES, Maria Leila. O papel equalizador do regime de colaboração estado-

município na política de alfabetização. 1990. 283 f. Dissertação (Mestrado em

Educação) - Universidade de Campinas, Campinas, 1990. Disponível em: .

Acesso em: 28 set. 2001.

BRASIL. Consolidação das Leis do Trabalho. Texto do Decreto-Lei n.º 5.452,

de 1 de maio de 1943, atualizado até a Lei n.º 9.756, de 17 de dezembro de

1998. 25 ed. atual. e aum. São Paulo: Saraiva, 1999.

CARVALHO, Maria Cecília Maringoni de (Org.). Construindo o saber:

metodologia cientifica, fundamentos e técnicas. 5. ed. São Paulo: Papirus,

1995. 175 p.

CURITIBA. Secretaria da Justiça. Relatório de atividades. Curitiba, 2004.

DEMO, Pedro. Metodologia do conhecimento científico. São Paulo: Atlas, 1999.

______. Pesquisa: princípio científico e educativo. 6. ed. São Paulo: Cortez,

2000.

MAINGUENEAU, Dominique. Elementos de lingüística para o texto literário.

São Paulo: Martins Fontes, 1996.

RAMPAZZO, Lino. Metodologia científica: para alunos dos cursos de

graduação e pós-graduação. São Paulo: Stiliano, 1998.

REIS, José Luís. O marketing personalizado e as tecnologias de Informação.

Lisboa: Centro Atlântico, 2000.

UNIVERSIDADE FEDERAL DO PARANÁ. Biblioteca Central. Normas para

apresentação de trabalhos. 2. ed. Curitiba: UFPR, 1992. v. 2.