DIOGO OLIVEIRA DE ARAÚJO
SISTEMA DE ENSINO PRESENCIAL CONECTADOANALISE E DESENVOLVIMENTO DE SISTEMAS
PRODUÇÃO TEXTUAL INTERDISCIPLINAR INDIVIDUAL
Sobral2013
Sobral-2013
DIOGO OLIVEIRA DE ARAÚJO
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
SUMÁRIO
1 INTRODUÇÃO.........................................................................................................3
2 DESENVOLVIMENTO..............................................................................................4
3 CONCLUSÃO...........................................................................................................7
4 REFERÊNCIAS........................................................................................................8
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.
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
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
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
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 à
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.
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.
<?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.
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 // < a href=' http://www.site.com '>Link</a><
?>
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()
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.
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.
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.
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
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
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
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.
Top Related