Upload
adilson-santos
View
344
Download
2
Embed Size (px)
Citation preview
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
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
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
11 CONCLUSÃO ................................................................................................. 28
REFERÊNCIAS ......................................................................................................... 29
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.
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;
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:
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.
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.
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.
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.
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.
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.
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
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
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.
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
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
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.
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.
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.
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
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
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
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.
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
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
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
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.
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.
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.