31
Goiânia 2012 ADILSON RODRIGUES DOS SANTOS SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS NOSSA LOCADORA DE LIVROS

Trabalho 6Sem

Embed Size (px)

Citation preview

Page 1: Trabalho 6Sem

Goiânia 2012

ADILSON RODRIGUES DOS SANTOS

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E

DESENVOLVIMENTO DE SISTEMAS

NOSSA LOCADORA DE LIVROS

Page 2: Trabalho 6Sem

Goiânia 2012

NOSSA LOCADORA DE LIVROS

Trabalho apresentado a disciplina do 6º semestre, do Curso Superior de Tecnologia em Análise e Desenvol-vimento de Sistema da Universidade Norte do Paraná –UNOPAR Orientador: Prof. Anderson Macedo, Veronice Freita, Adriane Lopes, Dorival Magro Jr.

ADILSON RODRIGUES DOS SANTOS

Page 3: Trabalho 6Sem

SUMÁRIO

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

2 OBJETIVOS ......................................................................................................... 4

2.1 GERAL ............................................................................................................. 4

2.2 ESPECÍFICOS: ................................................................................................ 4

3 A EMPRESA ........................................................................................................ 5

3.1 LEVANTAMENTO DE REQUISITOS ............................................................... 6

4 IMPLANTAÇÃO ESTRUTURA DE REDE ............................................................ 8

4.1 ORÇAMENTO .................................................................................................. 8

5 DIFERENCIAÇÃO ENTRE E-BUSINESS E E-COMERCE? ................................ 9

6 DESCRIÇÃO DE UM CRM PODE AJUDAR NO E-BUSNESS .......................... 10

7 SEGURANÇA NO DESENVOLVIMENTO DE APLICAÇÕES WEB .................. 11

7.1 Controle de Versão ......................................................................................... 11

7.2 VULNERABILIDADES .................................................................................... 11

7.2.1 Vulnerabilidades Comuns ........................................................................... 11

7.2.2 Injeção de SQL ........................................................................................... 12

7.2.3 Ataques a sistemas de autenticação........................................................... 13

7.2.4 Visualização de arquivos indevidos ............................................................ 15

7.2.5 Execução de comandos no Sistema Operacional ....................................... 15

7.3 Utilização do protocolo HTTPS ....................................................................... 16

7.3.1 Política de senhas ....................................................................................... 17

7.3.2 Upload de arquivos ..................................................................................... 17

8 Sistemas operacionais para Dispositivos Móveis ............................................... 18

8.1 PalmOS .......................................................................................................... 18

8.2 Mac OSX ........................................................................................................ 18

8.3 Android ........................................................................................................... 18

8.4 Symbian .......................................................................................................... 19

8.5 Windows Mobile ............................................................................................. 19

8.6 BlackBerry ...................................................................................................... 19

8.7 Firefox OS ...................................................................................................... 19

9 ERGONOMIA (IHC) ........................................................................................... 20

9.1 ERGONOMIA: PRINCÍPIOS E PRÁTICAS .................................................... 21

10 ANÁLISE E CONCEPÇÃO DE SISTEMAS ERGONÔMICOS ....................... 24

Page 4: Trabalho 6Sem

11 CONCLUSÃO ................................................................................................. 28

REFERÊNCIAS ......................................................................................................... 29

Page 5: Trabalho 6Sem

3

1 INTRODUÇÃO

O uso de computadores vem aumentando em quase todas as

atividades. Um dos fatores são os benefícios com o uso dessa ferramenta que a

partir das informações geradas facilitam a administração de seus respectivos

negócios, entretanto ainda existem muitas empresas que utilizam em pequenas

escala ou não os utilizam, como é o caso da empresa NOSSA LOCADORA DE

LIVROS no ramo de locadora de livros.

Na atual situação o processo de locação é feito em modo manual, ou

seja, a execução exige a agilidade dos funcionários e em muitos casos ocorre a

irritação dos clientes em virtude da demora.

O presente projeto pretende desenvolver um sistema desde sua

concepção até a implantação, a partir da fase de Concepção do sistema, de acordo

com o ciclo de vida, descrevendo um cronograma de atividades.

Diante dos recursos disponíveis, consultas de recursos literários e

principalmente do apoio dos orientadores temos plena certeza que teremos

excelente excito no produto final deste projeto.

Page 6: Trabalho 6Sem

4

2 OBJETIVOS

2.1 GERAL

Desenvolver um Sistema para Locadora de Livros, demonstrando as

metas a serem alcançadas.

2.2 ESPECÍFICOS:

a) gerenciar locação/devolução;

b) gerenciar clientes;

c) gerenciar funcionários;

d) gerenciar livros e suas respectivas categorias;

e) gerar relatórios gerenciais:

- livros locados;

- reservas efetuadas;

- livros ocupados;

- resumo do faturamento;

- livros disponíveis;

- faturas em atraso;

- faturas a serem enviadas aos clientes.

f) desenvolver métodos de segurança;

Page 7: Trabalho 6Sem

5

3 A EMPRESA

A empresa NOSSA LOCADORA DE LIVROS, localizada na região

central de Goiânia-GO, CEP 74.000-000, fundada em 01 de abril de 1990, atua no

ramo de locação de livros, não há filias no Brasil. Seu fundador João do Pulo, é seu

diretor e contador, com um quadro de 7 funcionários que atuam em diversas áreas,

sendo: José Ambrosio, Maria Chiquinha e Teotônio (departamento de locação),

Filisbino Nascimento (departamento de compras), Cornélio José (departamento

controle de estoque) e Marcelina (departamento financeiro); desde o inicio de sua

operação a direção continua sendo o seu fundador.

Possui seu patrimônio de 20.000 títulos, que são classificados

como: diamante, ouro, prata e bronze. Sendo os valores da locação distribuídos pela

classificação, respectivamente: R$ 20,00; R$ 15,00; R$ 10,00; R$ 5,00. Cuja

finalidade é de prestar serviços de locação de livros nacionais/importado.

O atendimento é feito por telefone ou via balcão, onde o cliente

interessado em locar um livro faz contato com o atendente e por sua vez é feito o

cadastro desse cliente. A locação poderá ser pago por cartão de credito, dinheiro em

espécie ou boleto.

Em 1995, a empresa adquiriu o seu primeiro computador e teve a

necessidade de contratar uma empresa de TI (Tecnologia da Informação), para

informatizar as primeiras rotinas de escritório (uso de editor de texto para geração de

documentos internos, planilhas eletrônicas para controle financeiro e um gerenciador

de tabelas eletrônicas para controlar os empréstimos e devoluções).

A empresa “GRUPO SERVICE” assumiu esse compromisso e atua

plenamente no desenvolvimento do sistema de locação de livros.

A estrutura da Empresa NOSSA LOCADORA DE LIVROS,

apresenta o organograma:

Page 8: Trabalho 6Sem

6

Figura 1 – Orgonograma da Empresa, Nossa Locadora de Livros.

Fonte: criação independente (2012)

3.1 LEVANTAMENTO DE REQUISITOS

As entrevistas com os usuários começaram pelo Sr. João do Pulo,

que apresentou os principais processos de uma forma macro, pois os detalhes serão

tratados com os funcionários específicos de cada área.

Hoje a empresa conta com um controle dos seus livros, sendo que

cada livro tem um vínculo com seu autor (lembrando que um livro pode ter mais de

um autor e que um autor também pode escrever vários livros diferentes), neste

controle deverá apresentar também o tipo de classificação sendo somente uma.

No cadastro de livro devera ser informada a quantidade de

exemplares que ele possui, ou seja, um livro poderá ter um ou mais exemplares.

Atualmente, quando um cliente vem locar algum livro, ele pode

solicitar o empréstimo de vários livros de uma só vez e a devolução está

condicionada a entrega de todos os exemplares que ele levou.

Um exemplar de um livro poderá ser emprestado varias vezes para

vários clientes diferentes em datas diferentes.

A “Nossa Locadora de Livros”, possui também um controle de

usuários para gerenciar todos os acessos e manipulações realizados pelos seus

funcionários. Estes usuários é que realizam todas as operações no atual sistema,

lembrado que um empréstimo é feito sempre por apenas um usuário, mas que este

usuário poderá registrar vários empréstimos. Após a realização do levantamento de

requisitos foi elaborado o caso de uso pela empresa “Grupo Service”, onde teve a

aprovação dos stakeholders.

Page 9: Trabalho 6Sem

7

Figura 2 – Diagrama de Caso de Uso Empréstimo.

Depto Locação

Manter Livros

manter Usuarios

Gerenciar Emprestimo

Gerenciar Devolução

Controlar Autor

<<include>>

Fonte: criação independente (2012)

Devido á grande demanda, a empresa fez um planejamento e está

se preparando para abrir uma filial na cidade de Anápolis.

Page 10: Trabalho 6Sem

8

4 IMPLANTAÇÃO ESTRUTURA DE REDE

Realizaremos um orçamento que atenda a implantação de estrutura

de rede em sala comercial ampla com 200 m², sendo uma sala de escritório, dois

banheiros e um salão de vendas.

4.1 ORÇAMENTO

Tabela 1 – Orçamento de Projeto (Implantação)

QUANTIDADE DESCRIÇÃO DO EQUIPAMENTO/SERVIÇO

PREÇO TOTAL

10 Computadores DUAL CORE E7500 HD 500 GB MEMORIA 4 GB 1.600,00 16.000,00

1 Computador I7 4 GB MEMORIA HD 1 TB 2.900,00 2.900,00

2 Multifuncional LaserJet Pro M1132 NF (Impressora + Copiadora + Scanner) – HP 600,00 1.200,00

11 Monitor LED 18.5 ´ ACER /47 CM

WIDE LCD MONITOR 290,00 2.190,00 11 TECLADOS 20,00 220,00 11 MOUSES 12,00 132,00 1 Switch de 16 portas ENCORE- D – Link 199,00 199,00

1 Roteador Wireless ADSL2 / 2+ D - Link DSL - 2640B - Wi - Fi 802. 98,00 98,00

1 Central de PABX 2 linhas e 10 ramais intelbraz 462,00 462,00

8 Aparelho de Telefone 45,00 360,00

4 Cabo Rede Rj45 Rolo De 100 Metros Azul Cabo Rede Cat. 5e Cabo Utp 52,00 208,00

1 Sistema de locadora (controle) 300,00 300,00

1 Firewall D - Link DFL - 860 BR NetDefend Network Security UTM 3.800,00 3.800,00

1 Ant-virus - AVG- Free - - Total 28.069,00

Fonte: criação independente (2012)

A implantação contara com um servidor que fará o controle e

armazenará backups de todas as maquinas para evitar problemas futuros. Será

implantado um sistema interligado entre os computadores (rede), programas as

quais controlaram tanto locação débitos e atrasos em devoluções.

Page 11: Trabalho 6Sem

9

5 DIFERENCIAÇÃO ENTRE E-BUSINESS E E-COMERCE?

A maioria das empresas já percebeu que a Internet veio para ficar.

Líderes empresariais percebem que para manter a sua vantagem competitiva têm

que se tornar num e-Business (negócio eletrônico).

O termo e-business já tem registro desde 1995 sob o nome de uma

revista on-line, mas foi em 1997, em uma campanha criada pela Ogilvy & Mather,

que a IBM popularizou o e-business. Ela associou o termo a novas oportunidade em

negócios altamente conectados, ligando o termo diretamente a internet. Na verdade

o e-business é muito mais que isto. O e-business pode ser definido como sistemas

de informação que auxiliam os processos de negócio. Estes sistemas podem

ser desde B2C e B2B até CRM, Supply Chain Management (SCM) e gerenciadores

de conteúdo. Claro que o termo varia de autor para autor, mas a essência é esta.

Algumas das principais vantagens do e-business são:

a) integração: sistemas conectados como ERP e SCM facilitam a

troca de informações;

b) agilidade: informações em tempo real sobre o seu negócio,

facilitam a tomada de decisão;

c) transparência: todas as etapas envolvidas estão disponíveis

para o nível gerencial.

Com o e-business entendido, podemos seguir para o e-commerce.

Já vimos o que é e-commerce. Ele faz parte do e-business. Ele compreende não

apenas a parte de compras e vendas, mas também o marketing, a logística,

a infra-estrutura e o atendimento ao cliente.

Por fazer parte do e-business, o e-commerce deve seguir a mesma

estratégia traçada. Ambos são essenciais para estabelecer um novo patamar para

as empresas.

O e-business e o e-commerce recebem definições diferentes

inclusive de autores respeitados, mas o mais importante é saber que eles existem e

auxiliam as empresas a alcançar novos mercados, agilizar a troca de informações

e estreitar relacionamento com clientes e fornecedores.

Page 12: Trabalho 6Sem

10

6 DESCRIÇÃO DE UM CRM PODE AJUDAR NO E-BUSNESS

No chamado C.R.M., "Gerenciamento de Relações com o Cliente", o

objetivo não é apenas conhecer melhor o cliente mas, principalmente, buscar de

forma incessante o atendimento de suas necessidades de forma que a satisfação

desse cliente se transforme em fidelidade à marca. Para um CRM eficaz, o

conhecimento do cliente não é um fim em si mesmo mas um meio para deixá-lo mais

satisfeito, de forma que ele não "voe" para o concorrente ao menor estímulo. E na

era da Internet, o concorrente está, literalmente, a um clique de distância.

Uma questão central no CRM, é fazer com que cada contato sirva

como um aprendizado sobre o cliente de forma a conhecer cada vez mais suas

características e necessidades. Evidentemente, não adianta nada ser bem atendido,

e não ter o seu problema resolvido no final. O objetivo do CRM, portanto, é atender

eficientemente e solucionar com eficácia.

Page 13: Trabalho 6Sem

11

7 SEGURANÇA NO DESENVOLVIMENTO DE APLICAÇÕES WEB

As aplicações web disponibilizadas na rede, sejam elas sites,

webservices ou sistemas acessíveis via rede, podem ser acessadas por quase

quaisquer usuários que possuam conexão com a Internet. Essa facilidade de acesso

possibilita o ataque indiscriminado a tais serviços, ocasionando, em determinados

casos, diversos problemas, tais como: divulgação de dados confidenciais,

indisponibilidade do serviço por tempo indeterminado, denigrarão da imagem da

organização, etc.

Infelizmente, a maioria dos desenvolvedores só se preocupa com a

segurança da aplicação após algum problema relacionado à mesma, querendo

aplicar todas as medidas preventivas somente depois que o software está

desenvolvido. Dessa forma, infringe-se uma das primeiras premissas para aumentar

a segurança da aplicação: pensar em segurança desde o início do desenvolvimento

do software.

7.1 CONTROLE DE VERSÃO

O propósito principal deste documento é dar uma visão geral das

principais falhas encontradas em aplicações web e apresentar contramedidas para

solucionar cada um dos problemas listados. Dessa forma, foge do escopo deste

documento entrar em detalhes sobre cada uma das falhas apresentadas ou ainda

servir como um manual para realização de ataques.

7.2 VULNERABILIDADES

7.2.1 Vulnerabilidades Comuns

Nesta seção são apresentadas as falhas comumente encontradas

em aplicações web, exibindo a sua descrição e as respectivas recomendações para

evitá-las.

Page 14: Trabalho 6Sem

12

7.2.2 Injeção de SQL

O objetivo deste ataque é inadvertidamente consultar, inserir,

remover ou alterar os dados do banco de dados. Para isso, o atacante insere

comandos SQL através dos parâmetros de entrada da aplicação, para serem

concatenados com o código SQL original, e assim, executar outro comando SQL. O

atacante, geralmente, utiliza formulários que não realizam tratamento na entrada de

dados dos usuários para injetar SQL no código da aplicação. Abaixo é exibido um

exemplo de uma aplicação imaginária, escrita em ASP utilizando o banco de dados

SQL Server, que realiza a seguinte consulta para autenticação dos usuários:

Select * From Usuario Where login='”& login &”'

And senha = '”& senha &”'”

O atacante poderia inserir nos campos login e senha os seguintes

valores respectivamente, “' or 1=1 --” e “123”, resultando no código:

Select * From Usuario Where login='' or 1=1 -- '

And senha = '123';

Dessa forma, a aplicação executará uma consulta SQL que

retornará um conjunto com todos os usuários do sistema, pois a expressão “or 1=1”

torna o comando verdadeiro e a expressão “--” comenta o restante do código. Como

vários sistemas de autenticação utilizam apenas o primeiro usuário da lista

retornada, que freqüentemente é um administrador do sistema, o atacante então

seria autenticado no sistema com as credencias deste super-usuário.

O ponto principal para prevenir esta vulnerabilidade nas aplicações é

a confirmação de que o conteúdo de páginas dinamicamente geradas não contenha

scripts indesejados. Isso pode ser alcançado filtrando-se toda a entrada do usuário

na aplicação, incluindo cookies, urls e dados transmitidos via POST e GET. Além

disso, é interessante também filtrar a saída do servidor web para o usuário, pois um

atacante poderia inserir um script hostil diretamente no banco de dados ou em um

momento em que a aplicação não possuía filtragem dos dados. Dessa forma,

qualquer dado persistente que seja transmitido entre o navegador e o servidor web

deve ser filtrado, a fim de atingir todo o escopo do problema.

Para realizar a filtragem dos dados recomenda-se utilizar uma

abordagem positiva, que consiste em negar todas as entradas com exceção dos

dados previamente escolhidos. Por exemplo, não há necessidade de um campo do

Page 15: Trabalho 6Sem

13

tipo data no formulário receber entradas com valores diferentes de números e talvez

barras ‘/’ (para separar dia, mês e ano). Dessa forma, o desenvolvedor não terá que

adivinhar ou atualizar todas as formas de entradas maliciosas para negar todos os

caracteres específicos.

A abordagem positiva da filtragem de dados é a recomendada pois

existem várias formas de representar o mesmo caractere. Por exemplo, a seguinte

tabela abaixo lista algumas formas de representar o caractere ‘<’, que dependendo

do contexto pode ser hostil.

7.2.3 Ataques a sistemas de autenticação

Para garantir a acessibilidade das informações nos sistemas por

pessoas que possuam a autorização para tal, várias aplicações implementam um

controle de autenticação, obrigando o usuário a informar login/senha válidos para

acessar o sistema. Apesar desse controle, freqüentemente os desenvolvedores dos

sistemas exibem informações de erros detalhadas, na tentativa de ajudar os

usuários, como por exemplo, ‘Usuário não cadastrado’ ou ‘Senha inválida’. Abaixo

são listados os principais problemas provenientes dessas mensagens de erro:

a) Enumeração de logins válidos: Nesta técnica vários usuários

válidos do sistema poderão ser listados, facilitando o ataque de

dicionário ou de força bruta. Isso é possível devido à mensagem

de erro informar se determinado usuário existe ou não no

sistema.

b) Ataque de dicionário: Esta técnica utiliza a política da tentativa e

erro baseado num dicionário de palavras, na qual o atacante

poderá utilizar este conjunto de palavras nos campos de login e

Page 16: Trabalho 6Sem

14

senha a fim de se autenticar no sistema. Com a descoberta de

logins válidos (item anterior), o processo de descoberta da senha

reduz-se drasticamente.

c) Ataque de força bruta: Esta outra técnica baseia-se na mesma

idéia do ataque de dicionário, mas ao invés de utilizar um

dicionário de palavras, utiliza todas as possibilidades de

formações de palavras, elevando muito o tempo de descoberta

de pares de usuário/senha válidos. Da mesma forma que o item

anterior, caso o atacante possua logins válidos o tempo gasto

neste processo de autenticação será reduzido

consideravelmente.

A fim de garantir um controle de autenticação dos usuários na

aplicação, muitos sistemas web utilizam cookies para guardar um identificador único

do usuário, evitando assim, que o usuário informe as suas credenciais para cada

solicitação enviada ao servidor. Por exemplo, quando um usuário se autentica em

uma aplicação web, o sistema valida seu login e senha e associa um cookie ao

usuário solicitante. Quando o usuário solicita outra página, ao invés de informar

novamente o login e senha, o servidor captura o cookie e verifica qual usuário possui

o identificador informado, carregando a página solicitada no caso do identificador

estar associado a um usuário ou negando o acesso em caso contrário.

O ataque pode surgir quando captura-se ou “adivinha-se” o cookie

de outro usuário. Então, torna-se possível acessar a aplicação e se passar pelo

usuário que está associado àquele cookie capturado. Isso pode acontecer de várias

maneiras:

a) Através de outros ataques que consigam capturar o cookie, como

por exemplo, Cross Site Scripting.

b) Caso a comunicação dos dados não seja criptografada, ou seja,

caso seja utilizado HTTP ao invés de HTTPS (HTTP sobre SSL).

c) Se o cookie estiver armazenado no cache do navegador.

Apesar do uso de HTTPS garantir a criptografia dos dados

transmitidos entre o cliente e o servidor, ainda é possível capturar o cookie dos

usuários através de outro ataque, neste caso, o Cross Site Scripting. Portanto, a

eliminação dessa vulnerabilidade já diminui consideravelmente o risco de ocorrer um

seqüestro de sessão.

Page 17: Trabalho 6Sem

15

Além disso, ainda são recomendados alguns itens:

a) Utilização de um valor pequeno para o tempo de expiração do

cookie.

b) Evitar utilizar cookies persistentes, impedindo assim que um

atacante o roube, caso tenha acesso físico ao computador do

usuário.

c) Separar os cookies de autenticação dos cookies de

personalização, que são utilizados para armazenar as

preferências dos usuários.

7.2.4 Visualização de arquivos indevidos

Algumas aplicações mantêm arquivos em locais impróprios ou

mantêm arquivos que não deveriam estar na aplicação. Alguns exemplos do primeiro

tipo são arquivos de configuração e informações sigilosas. Exemplos do segundo

tipo são: arquivos com senhas (da aplicação ou do banco de dados), arquivos com o

código-fonte acessível. Em ambos os casos a divulgação destas informações pela

aplicação pode tornar a aplicação suscetível a outros ataques ou permitir que dados

confidenciais sejam disponibilizados.

Caso a disponibilização de arquivos sigilosos seja necessária,

recomenda-se que a própria aplicação ofereça essa funcionalidade, respeitando a

autenticação e a autorização do usuário solicitante. Os demais tipos de arquivos,

configuração e backup, não devem ser acessados via web.

7.2.5 Execução de comandos no Sistema Operacional

Esta técnica de ataque permite a execução de comandos do

Sistema Operacional através da manipulação nas entradas de dados da aplicação.

Isso é possível quando a aplicação não valida corretamente a entrada do usuário

antes de usá-la no sistema. Dessa forma, todos os comandos irão executar com as

mesmas permissões do serviço que executou o comando, seja ele o servidor web, o

banco de dados, etc.

Algumas aplicações web incluem parâmetros informando um arquivo

que será exibido para o usuário. Caso não seja feita a validação de entrada

Page 18: Trabalho 6Sem

16

informada pelo usuário, um atacante pode modificar o valor do parâmetro

executando um comando do sistema operacional. Os exemplos abaixo exibidos são

de uma aplicação fictícia rodando sobre um sistema operacional baseado em Unix.

Essa aplicação possui uma página para exibição de arquivos solicitados pelo

usuário, de modo que o nome do arquivo é informado no parâmetro arquivo da url.

Dessa forma, o atacante poderia trocar o valor dessa variável por um código

malicioso. O código original é exibido abaixo:

http://exemplo/teste.php?id=15&arquivo=relatorio.pdf

Alterando-se o valor para “; rm –r *”, o atacante consegue remover

todos os arquivos e diretórios do diretório corrente e abaixo dele.

http://exemplo/teste.php?id=15&arquivo=; rm –r *

Um outro modo, que algumas aplicações web utilizam são as

funções exec, que permitem a execução de comandos do sistema operacional. Caso

a aplicação permita a introdução de dados pelo usuário que sejam usados em tais

funções sem a devida validação, um atacante poderia executar comandos do

sistema operacional remotamente.

Como estas funções podem oferecer falhas críticas à infra-estrutura

da empresa, recomenda-se que todos os dados provindos do usuário e utilizados

como parâmetro nestas funções sejam validados antes de serem executados.

Também utilize, se possível, chamadas a bibliotecas ao invés de processos externos

(exec(), system(), etc.) com a finalidade de recriar a funcionalidade desejada. Além

disso, certifique-se que a aplicação é executada com o mínimo de privilégios

possível para funcionar corretamente, a fim de restringir o efeito da execução de

códigos maliciosos. Caso a aplicação não faça uso de tais funções e caso seja

possível, recomenda-se o bloqueio da execução das chamadas de sistema através

da configuração do servidor web.

7.3 UTILIZAÇÃO DO PROTOCOLO HTTPS

O protocolo HTTP não oferece grau algum de segurança para a

comunicação de dados. Com a ampliação da internet e devido à necessidade de

tráfego de dados seguros, foi implementado HTTPS3 para prover vários serviços de

segurança para as aplicações e usuários das mesmas.

Os principais serviços oferecidos são: confidencialidade4 da

Page 19: Trabalho 6Sem

17

informação entre o servidor e o cliente através da criptografia e a autenticação5 do

servidor para o cliente através de certificados digitais.

7.3.1 Política de senhas

Um dos elos fracos de qualquer aplicação que necessite de

autenticação são as senhas. Vários usuários utilizam senhas fracas, possibilitando

que um ataque de força bruta descubra um par de login / senha válido.

Para contornar esse problema, recomenda-se que o sistema

implemente uma política de senhas, impedindo que senhas fracas sejam admitidas.

Como exemplo, pode-se requisitar que o usuários informe uma senha com no

mínimo 8 caracteres, utilizando letras maiúsculas, minúsculas, símbolos e números,

sendo trocada periodicamente. Para maiores informações sobre políticas de senhas,

veja o folder Dicas de Segurança: Escolhendo e protegendo suas senhas – USC /

ATI.

7.3.2 Upload de arquivos

Vários sistemas permitem aos seus usuários enviar arquivos para a

aplicação com diversas finalidades, dentre elas a centralização de documentos no

sistema, a inclusão de arquivos no e-mail, o armazenamento remoto de arquivos,

etc. Apesar dos benefícios, esta funcionalidade geralmente apresenta algumas

vulnerabilidades sérias ao sistema. O principal ponto a ser verificado é a extensão

do arquivo enviado ao servidor. Extensões como .exe, .bat, .cmd, .src, .dll, .vb, .vbs,

.asp, .php, .js, .jsp, etc. são tidas como suspeitas e devem ser bloqueadas pela

aplicação. A abordagem normalmente utilizada é permitir somente as extensões

previamente selecionadas e negar todas as demais extensões.

Ainda é recomendado utilizar uma partição específica para o

armazenamento dos arquivos enviados, que seja diferente da partição do sistema

operacional e do servidor web, com isso evita-se a falta de espaço para os arquivos

do sistema operacional e o acesso direto aos arquivos pela web, respectivamente.

Para completar, caso o sistema permita, especifique uma quota de tamanho total por

usuário para o envio de arquivos, impossibilitando que usuários mal-intencionados

acabem todo o espaço da partição destinado para o upload.

Page 20: Trabalho 6Sem

18

8 SISTEMAS OPERACIONAIS PARA DISPOSITIVOS MÓVEIS

A disputa pela preferência do consumidor no mundo dos telefones

móveis não se limita apenas à venda dos aparelhos, mas também para conseguir

tornar seus sistemas operacionais cada vez mais populares. Neste artigo você

encontra uma breve descrição dos principais sistemas operacionais para dispositivos

móveis presentes no mercado, para que assim você possa entender as diferenças e

semelhanças entre eles na hora de escolher um novo aparelho.

8.1 PALMOS

Desenvolvido há mais de 10 anos, foi o primeiro SO para

dispositivos móveis a se popularizar, chegando a quase 90% do mercado mundial

de palmtops. Possui hoje uma base de quase 30.000 aplicativos desenvolvidos para

ele. Faz mais de dois anos que o PalmOS não ganha uma nova versão, não

acompanhando as recentes tecnologias.

8.2 MAC OSX

O sistema que faz o iPhone, o iPod Touch e o iPad rodarem é uma

versão modificada do sistema operacional Mac OSX, que recebe o nome de iPhone

OS. Seu foco é oferecer suporte para as tecnologias de reconhecimento de toques

múltiplos, de inclinação (graças à inclusão do acelerômetro interno) e de multimídia

(vídeos, imagens e músicas). Lado ruim? Disponível somente para Apple. Lado

bom? Nada de vírus.

8.3 ANDROID

Formado por 47 empresas, o sistema operacional da Google é o que

mais oferece aplicativos gratuitos e possui suporte ao Flash, da Adobe, ausente

atualmente no Windows Phone 7 e iOs. O Android ainda é integrado às redes sociais

como Twitter e Facebook e conta com o sistema multitarefa, além de permitir

transferência direta de arquivos entre o celular e o PC. Os variados aplicativos são a

grande vantagem do sistema Android, como leitores de ebooks, tocadores de mp3,

bússolas digitais e, claro, joguinhos.

Page 21: Trabalho 6Sem

19

8.4 SYMBIAN

Desenvolvido pela parceria entre Ericsson, Nokia, Motorola e

PSION, é um sistema operacional para aparelhos móveis com sistema modular,

permitindo que cada uma destas empresas desenvolva a sua própria interface. O

Symbian OS permite o desenvolvimento de sistemas diferenciados, que vão desde

textos em telas simples e monocromáticas até sofisticados sistemas.

8.5 WINDOWS MOBILE

Sistema operacional desenvolvido pela Microsoft especialmente para

dispositivos móveis. Além de facilmente conectar seu aparelho celular a uma rede

sem fio, o Windows Mobile permite uma adaptação mais rápida de aplicativos

desenvolvidos, a princípio, para o Windows do seu computador (Word, Outlook etc).

O Windows Mobile traz todo o conhecimento e inúmeros aplicativos já desenvolvidos

e garantidos pela Microsoft.

8.6 BLACKBERRY

O BlackBerry é um sistema operacional da empresa canadense RIM

– Research in Motion. Ele integra diversas funções importantes como editor de texto,

acesso à internet, e-mail e tecnologia IPv6. O que o diferencia dos demais é que ele

utiliza um serviço próprio de e-mail RIM, chamado BBM (Blackberrymessenger). Ele

suporta todas as funções necessárias para criar documentos, planilhas,

apresentações, etc.

8.7 FIREFOX OS

O sistema é mais leve pois conta com menos “camadas” e pode ser

iniciado diretamente da Internet. O Firefox OS dá ao desenvolvedor acesso direto

aos APIs da câmera, SMS, telefone, contatos, mensagens, etc, o que vai tornar mais

simples a vida dos programadores. Está disponível sem qualquer custo para

usuários finais, fabricantes ou operadoras. Um ponto extra é a duração da bateria,

que pode chegar a uma semana, segundo o executivo da Mozilla.

Page 22: Trabalho 6Sem

20

9 ERGONOMIA (IHC)

A introdução de um sistema interativo em um ambiente de trabalho

modifica a realização das tarefas por ele suportadas e condiciona o desempenho de

seu operador aos erros e acertos da equipe de desenvolvimento do sistema.

Hoje há um consenso entre os desenvolvedores de software de que

a qualidade do desempenho do usuário está ligada à qualidade de sua interface com

o sistema. Assim, o desenvolvimento de sistemas interativos de qualidade exige a

utilização conjunta e integrada de conceitos e técnicas específicas do domínio

conhecido como Interação Humano-Computador (IHC) e de conceitos e métodos de

desenvolvimento de sistemas considerados integrantes do domínio da Engenharia

de Software.

Tradicionalmente a Engenharia de Software tem se ocupado do

desenvolvimento do componente funcional do sistema, também conhecido como

aplicação, enquanto que é do domínio de IHC, o componente que interage com o

usuário, também conhecido como Interface com o Usuário (IU). Esta

separação de componentes, no ponto de vista da arquitetura de sistemas interativos,

é denominada independência de diálogo e possibilita dois benefícios essenciais:

a) a aplicação e a IU podem ser modificados e evoluir

separadamente.

b) a interface com o usuário (IU) pode ser projetada por um

especialista da área, o projetista de interfaces, que pode usar

conhecimentos de design visual, psicologia cognitiva, ergonomia,

semiótica, etc.

O conceito de independência do diálogo, no entanto, tem sido

entendido e praticado como sinônimo de isolamento de diálogo, uma postura na qual

o desenvolvimento do sistema interativo é feito através do desenvolvimento dos dois

componentes em separado: tipicamente, primeiro a aplicação, depois a IU.

Assim, os engenheiros de software (analistas e projetistas da

aplicação) têm uma perspectiva interna destes sistemas, priorizando aspectos

essencialmente funcionais, como por exemplo, eficiência, manutenibilidade e

portabilidade, conferindo ao desenvolvimento uma orientação funcional em

detrimento da operacional. Assim, colocando em um plano secundário o

desempenho do usuário face os objetivos de suas tarefas, tem-se como resultado

Page 23: Trabalho 6Sem

21

sistemas que efetivamente funcionam, mas que muitas vezes, são inadaptados aos

usuários e inadequados às suas tarefas.

Por outro lado, os projetistas de interface compartilham de uma

perspectiva externa dos sistemas, se concentrando em geral, nos aspectos de

interação e não considerando adequadamente os aspectos funcionais e arquiteturais

enfatizados pela Engenharia de Software. Um sistema interativo deve ser intuitivo e

fácil de usar mas, como qualquer sistema, também deve ser robusto e fácil de

manter, assim como seu desenvolvimento deve respeitar as restrições de orçamento

e cronograma. Um sistema que não respeita estes aspectos não possui qualidade,

nem sob o ponto de vista da IHC, nem no senso corrente da Engenharia de

Software.

9.1 ERGONOMIA: PRINCÍPIOS E PRÁTICAS

A ergonomia2 mostra-se habilitada a enfrentar os problemas e

propor soluções lógicas para o desenvolvimento de software interativo que sejam

adaptados a seus usuários e adequados a suas tarefas. Atualmente, face ao

celerado processo de informatização da sociedade, verifica-se a importância que a

ergonomia da informática passa a ter para a qualidade de vida em geral, quando

pessoas sem um treinamento específico passam a ter necessidades de acesso aos

dispositivos informatizados existentes no seu trabalho, em sua casa ou mesmo em

locais públicos.

Como disciplina, a ergonomia se vale dos conhecimentos sobre o

homem no trabalho, com o objetivo de conceber e avaliar produtos e ferramentas

que possam ser utilizados com o máximo de conforto, segurança e eficiência. Os

fundamentos teóricos da abordagem proposta neste trabalho são os conhecimentos

de fisiologia e de psicologia cognitiva, sendo sua base metodológica definida a partir

da Análise Ergonômica do Trabalho (AET). As informações recolhidas são

representadas através de modelos de tarefas, que descrevem o quê um usuário faz

quando realiza tarefas e, em alguns casos, como ele realiza estas tarefas. Estas

descrições explicitam os objetivos, os procedimentos, as regras de funcionamento e

as restrições impostas pelo contexto da tarefa.

Os princípios são tipicamente apresentados na forma de critérios,

recomendações ou normas, e raramente são associados a algum método de

Page 24: Trabalho 6Sem

22

concepção. São por isto, altamente dependentes de quem os interpreta e aplica.

Bastien & Scapin, desenvolveram, a partir do exame exaustivo de uma base de

recomendações ergonômicas, o conjunto de critérios ergonômicos (C.E.) [3] que é

empregado nas intervenções de ergonomia praticadas pelo LabIUtil.

a) a condução se define no convite (presteza) do sistema, na

legibilidade das informações e telas, no feedback imediato das

ações do usuário e no agrupamento e distinção entre itens nas

telas. Esse último sub-critério refere-se tanto aos formatos

(agrupamento e distinção por formato) como a localização

(agrupamento e distinção por localização) dos itens.

b) a carga de trabalho se define na brevidade das apresentações e

entradas (concisão), no comprimento dos diálogos (ações

mínimas) e na densidade informacional das telas como um todo.

c) o controle explícito se define no caráter explícito das ações do

usuário (ações explícitas) e no controle que ele tem sobre os

processamentos (controle do usuário).

d) a adaptabilidade refere-se tanto as possibilidades de

personalização do sistema que são oferecidas aocusuário

(flexibilidade) como ao fato da estrutura do sistema estar

adaptada a usuários de diferentesníveis de experiência

(consideração da experiência do usuário).

e) a gestão de erros refere-se tanto aos dispositivos de prevenção

que possam ser definidos nas interfaces (proteção contra erros)

como à qualidade das mensagens de erro fornecidas e às

condições oferecidas para que o usuário recupere a normalidade

do sistema ou da tarefa (correção dos erros).

f) a consistência refere-se a homogeneidade e coerência das

decisões de projeto quanto as apresentações e diálogos.

g) o significado dos códigos e denominações refere-se a relação

conteúdo-expressão das unidades de significado das interfaces.

h) a compatibilidade se define no acordo que possa existir entre as

características do sistema e as características, expectativas e

anseios dos usuários e suas tarefas.

Esse conjunto de critérios tem sido, durante os últimos anos, alvo de

Page 25: Trabalho 6Sem

23

uma série de experimentos que visam validá-los em suas pretensões adicionais de

organizar os conhecimentos do domínio da ergonomia, contribuir para a

normalização e de aperfeiçoar o diagnóstico ergonômico.

Page 26: Trabalho 6Sem

24

10 ANÁLISE E CONCEPÇÃO DE SISTEMAS ERGONÔMICOS

Segundo o ponto de vista da ergonomia, é necessário conhecer o

trabalho para poder modificá-lo. Assim, as repercussões da implantação de um

aplicativo de software no ambiente de trabalho serão as melhores possíveis, na

medida em que sejam considerados:

a) os conhecimentos sobre a estrutura da tarefa de referência

(tarefa de origem) do novo sistema;

b) os princípios adequados para definir a nova repartição de tarefas

entre homem e máquina;

c) um processo de especificação dos requisitos do futuro sistema

baseado na participação de usuários em situações (reais ou

futuras) de realização da nova tarefa interativa;

d) uma estratégia de especificação da interface com o usuário, com

base em componentes abstratos de apresentação e diálogo;

e) as diversas formas do conhecimento ergonômico, para realizar

as passagens previstas nos passos acima descritos.

Uma boa parte das decisões sobre a concepção de interfaces com o

usuário de sistemas interativos baseia-se em informações obtidas através da Análise

Ergonômica do Trabalho a ser apoiado pelo futuro sistema. Naturalmente, estas

tarefas serão tratadas com prioridade no projeto. Quanto às informações associadas

a estas tarefas, deve-se identificar principalmente, quais são as necessárias, quais

são as inúteis e quais são as impertinentes na interação com o sistema atual. Em

uma primeira etapa, caracterizada por entrevistas, questionários e análise de

documentos, faz-se a coleta e a sistematização destas informações. Numa etapa

final, deve-se validar estas informações através de observações do trabalho real.

O esclarecimento detalhado sobre as situações normais, críticas e

de incidentes na operação do futuro sistema, representa o início da especificação de

sua interface com o usuário.

No caso de um sistema interativo, a determinação de requisitos

torna-se mais complexa, pois os aspectos técnicos e humanos inerentes a este tipo

de sistema devem ser considerados em simultâneo e infelizmente, a literatura não

apresenta propostas integradoras para uma sistematização destes aspectos.

TAREFA (TAsk based Requirements Engineering FrAmework ) visa preencher esta

Page 27: Trabalho 6Sem

25

lacuna e consiste de uma estratégia de Engenharia de Requisitos concebida

especificamente para sistemas interativos, baseada na integração de conceitos,

modelos e técnicas de Engenharia de Software e de IHC. Ele visa a determinação

dos objetivos, das funções e das restrições de um sistema (objetivo clássico da

Engenharia de Requisitos segundo Zave) através da integração de técnicas como

por exemplo, análise de tarefa, análise contextual, análise orientada a objetos, casos

de uso (use cases), cenários e ‘design rationale’. Trata-se de uma abordagem

sistemática de engenharia de requisitos de um sistema interativo futuro levando em

conta a compreensão do contexto do sistema atual (informatizado ou não), e

consiste basicamente de 2 (duas) macroatividades:

a) macroatividade de Análise, cujo objetivo é a compreensão da

situação de trabalho atual existente, suas atividades e seu

contexto;

b) macroatividade de Síntese, cujo objetivo é determinar e

representar os requisitos do sistema à partir das informações

recolhidas na Análise e de um ciclo de experimentação com os

usuários do sistema em várias situações de uso.

Estas duas macroatividades são compostas por atividades

sistemáticas e atividades emergentes. As primeiras correspondem às atividades

propostas pela maioria dos trabalhos publicados em Engenharia de Requisitos. Elas

são realizadas notadamente pelo(s) analista(s), que podem planificá-las a priori, e

seu controle de realização é associado a algum método.

TAREFA é uma abordagem ‘baseada em tarefas’ (task based) em

contraposição às ‘baseadas em modelos’ (model based) (ver definição em

Vanderdonckt). O modelo de tarefa é fundamental para a condução do processo de

TAREFA e os outros modelos utilizados no desenvolvimento são o resultado de uma

derivação/transformação de um modelo de tarefa ou uma descrição do contexto

(organizacional, físico, etc.) das tarefas.

As proposições principais de TAREFA incluem:

a) enriquecer a modelagem do contexto de trabalho, ou seja, o

contexto de realização das tarefas, tipicamente através da

adoção de um conjunto de 5 (cinco) modelos, a saber:

- modelo ontológico do vocabulário do universo do problema que

estabelece uma unificação terminológica que permite uma melhor

Page 28: Trabalho 6Sem

26

comunicação usuário-analista;

• modelo de tarefa minimal, um modelo de intenções do

usuário, construído a partir do modelo de tarefas existentes e que

serve como ponto de partida para a elaboração dos casos de uso

(use cases) do sistema;

• modelo de contexto organizacional (Task Organisational

COntext - TOCO), no qual as tarefas são realizadas; este modelo

é complementar ao modelo de tarefas e permite representar os

elementos contextuais dos processos de trabalho da

organização, complementarmente aos objetivos e tarefas de

cada usuário;

• modelo dos objetos do domínio do problema, que permite

modelar um conjunto de classes (e seus relacionamentos de

generalização, agregação e associação) que correspondem às

informações significativas do domínio;

• modelo de plataforma, que permite representar

qualitativamente a configuração de recursos materiais

disponíveis para a realização do sistema, incluindo hardware

(CPU, periféricos, rede, etc.) e software (sistemas operacionais,

SGBDs, toolkits, etc.).

b) propor soluções a problemas típicos da Engenharia de

Requisitos, tais como rastreabilidade, comunicação usuário-

analista, participação do usuário no processo, e representação

da ‘design rationale’;

c) adotar o conceito de casos de uso (use cases) como fio condutor

do processo de determinação de requisitos (macroatividade de

Síntese); casos de uso são modelos narrativos que descrevem

situações (potenciais ou reais) de uso do sistema, permitindo

investigar diferentes comportamentos do sistema em reação a

diferentes condições e eventos além dos associados ao caso

‘normal’ de uso. Os casos de uso permitem formular requisitos

funcionais e de interação que emergem destas diferentes

situações;

d) se integrar a um método de desenvolvimento de software

Page 29: Trabalho 6Sem

27

orientado a objetos, na medida em que este é o paradigma mais

utilizado hoje em dia para o desenvolvimento de aplicações e, em

particular, pelas ferramentas de prototipação/maquetagem de

interfaces com o usuário. O método escolhido foi Objectory, no

qual o conceito de use case tem também um papel fundamental

associado aos processos de análise, construção e teste do

sistema.

Page 30: Trabalho 6Sem

28

11 CONCLUSÃO

Para desenvolver qualquer tipo de sistema é necessário identificar e

levantar as necessidades, conhecer o problema e as funcionalidades que o sistema

deverá ter. Para que fosse possível a análise e a especificação de um sistema para

locadora de livros, reuniões com os funcionários foram realizadas para compreender

o funcionamento, e através disso, levantar todas as funcionalidades que são

importantes para a construção do software.

Com a implantação do sistema, a lucratividade da locadora

aumentar de forma considerável. O atendimento aos clientes passará a ser rápido,

diminuindo o tempo de espera na fila de atendimento.

O sistema facilitará o controle das locações, devoluções e a

contabilização do acervo de Livros. Pesquisas tais como: para saber a

disponibilidade de um determinado Livro, dentre outras, passaram a ser realizadas

de forma segura e eficiente.

Com isso, pode-se concluir que o sistema contribuiu para o

aperfeiçoamento das técnicas de trabalho e melhorar a qualidade do serviço

prestado aos clientes. Além disso, a implantação do sistema possibilitou o aumento

no controle financeiro da loja, permitindo o aumento da lucratividade.

Devido principalmente a sua extensão e multi-disciplinariedade, as

técnicas e conhecimentos ergonômicos não têm sido usados no desenvolvimento de

sistemas interativos. As atividades do LabIUtil têm o sentido de aplicar e

desmistificar as ferramentas deste domínio, produzindo e disponibilizando

ferramental de simples entendimento e técnicas de fácil elaboração. O objetivo é

fazer com que os projetistas de aplicação e de interface, entre outros profissionais,

compreendam e apliquem estes conhecimentos e técnicas em suas atividades de

projeto de sistemas interativos.

Page 31: Trabalho 6Sem

29

REFERÊNCIAS

RUDIO, Franz Victor. Introdução ao projeto de pesquisa cientifica. 28. Ed. Petrópolis: Vozes, 2000.

CESAR, Ricardo; ONAGA, Marcelo. Cercadas por Hackers. 17 jul. 2007. Disponível em: <http://info.abril.com.br/aberto/infonews/072007/17072007-17.shl>.

ANONIMO.RAID da maior confiabilidade ao seu HD. Jul. 2008. Disponível em: < http://www.aprendaefaca.net/2008/05/raid-da-maior-confiabilidade-ao-seu-hd-e-menos-dor-de-cabeca.html>.

VICTOR, Dório. Crimes virtuais geram mais dinheiro que narcotráfico. 20 maio 2008. Disponível: <http://gl.globo.com/noticias/Rio/0,,mul487856-5606,00.html>.

OLIVEIRA, Fatima (Org.). Tecnologia da informação e da comunicação. 2 ed. São Paulo: Pearson, 2008.

CHIAVENATO, Idalberto. Introdução à teoria geral da administração. 3. ed. São Paulo: Mc-Graw-Hill, 1990.

SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo: Pearson Addison Wesley, 2007.

WIRTH, Almir. Fibras Óptica -Teoria e Prática. Rio de Janeiro: Alta Books, 2002.

CYBIS, W. A., A identificação dos objetos de interfaces homem-computador e de seus atributos ergonômicos. Universidade Federal de Santa Catarina, Brasil. (1994).

GIOZZA, William F.;CONFORTI, Evandro; WALDMAN, Hélio. Fibras ópticas - Tecnologia e Projeto de Sistemas. Rio de Janeiro: EMBRATEL; 1991.

OWASP (The Open Web Application Security Project). Vários artigos, ferramentas, etc. sobre segurança em aplicações web. http://www.owasp.org/

Spett, Kevin. Blind SQL Injection: Are your web applications vulnerable? http://www.spidynamics.com/whitepapers/Blind_SQLInjection.pdf#search=%22spi%20dynamics%20blind%20sql%20injection%22

Ollmann, Gunter. Paper: HTML Code Injection and Cross-site scripting, http://www.technicalinfo.net/papers/CSS.html.