Utilize este identificador para referenciar este registo:
https://hdl.handle.net/1822/79825
Título: | Aplicações web seguras em Django |
Autor(es): | Teixeira, Adriano Dias |
Orientador(es): | Esteves, António |
Data: | 19-Dez-2018 |
Resumo(s): | The main objective of this dissertation was the development of a secure Web application
with the Django framework, through the implementation of a set of selected security mea sures. The application that was selected to apply the security measures was an e-commerce
platform. Another objective of the present work was to analyze the support, offered by
Django, to the development of secure Web applications. The literature review helped us to
identify Web application security threats as well as their possible organization in 5 classes:
(i) code injection threats, (ii) authentication control threats, (iii) access control threats, (iv)
threats to data confidentiality, and (v) threats to the availability of the service. This kno wledge was crucial for the selection of the protection measures to implement in the Web
application. The application was developed according to the Scrum agile methodology.
The main problems encountered in using Scrum were (i) the need to adapt the methodo logy to a context in which the Scrum team has few members, and (ii) managing the conflict
between the need to document sprints and the Scrum practice that favors productivity over
documentation. The adopted compromise was to document each sprint before starting the
next one. On the other hand, using Scrum improved the definition and fulfillment of the
objectives, and allowed for the improvement of the development process itself. These be nefits result from Scrum following an iterative approach geared to the rapid production
of functional product increments. From the set of functionalities identified during the re quirement elicitation phase, 18 user stories were successfully implemented, resulting in a
minimum viable product, i. e., a functional product that implements the top most priority
requirements for potential users. After implementing and testing the application, it was
found that the level of security achieved is high, since 16 of the 19 implemented security
measures are effective in protecting against the respective attacks. The support provided
by Django, to the implementation of the selected security measures, reached a value close
to 68 %. Code injection protection is the security measure best supported by Django. At
the opposite extreme are the threats to the availability of the service, against which Django
does not offer any support. O principal objetivo desta dissertação era o desenvolvimento de uma aplicação Web segura com a framework Django, através da implementação de um conjunto de medidas de segu rança selecionado. A aplicação escolhida para aplicar as medidas de segurança foi uma plataforma de comércio eletrónico. Outro objetivo do trabalho consistia em analisar o su porte, oferecido pelo Django, ao desenvolvimento de aplicações Web seguras. A revisão da literatura ajudou a identificar as ameaças que a segurança das aplicações Web enfrenta, bem como uma possível organização destas em 5 classes: (i) ameaças de injeção de código, (ii) ameaças ao controlo de autenticação, (iii) ameaças ao controlo de acesso, (iv) ameaças à confidencialidade dos dados e (v) ameaças à disponibilidade do serviço. Este conhecimento foi crucial para a seleção das medidas de proteção a implementar na aplicação Web. A apli cação foi desenvolvida de acordo com a metodologia ágil Scrum. Os principais problemas encontrados na utilização do Scrum foram (i) a necessidade de adaptar a metodologia a um contexto em que a equipa Scrum é de dimensão reduzida e (ii) a gestão do conflito entre a necessidade de documentar os sprints e a prática do Scrum, que favorece a rentabili dade do trabalho em detrimento da documentação. A solução de compromisso encontrada passou por documentar cada sprint antes de se iniciar o próximo. Em contrapartida, a adoção do Scrum melhorou a definição e cumprimento dos objetivos, e permitiu o aperfei çoamento do próprio processo de desenvolvimento. Estes benefícios resultam de o Scrum seguir uma abordagem iterativa e orientada à produção rápida de incrementos de produto funcionais. Do conjunto de funcionalidades identificadas durante a fase levantamento de requisitos, foram implementadas com sucesso 18 histórias de utilizador, resultando num produto minimamente viável, ou seja, um produto funcional que satisfaz os principais requisitos que interessam aos potenciais utilizadores. Após a implementação e teste da aplicação, constatou-se que o nível de segurança atingido é elevado, visto que 16 das 19 medidas de segurança são eficazes na proteção contra os respetivos ataques. O suporte oferecido pelo Django, à implementação das medidas de segurança selecionadas, atingiu um valor próximo de 68%. A proteção contra injeção de código é a medida de segurança melhor suportada pelo Django. No extremo oposto estão as ameaças à disponibilidade do serviço, contra as quais o Django não oferece qualquer apoio. |
Tipo: | Dissertação de mestrado |
Descrição: | Dissertação de mestrado em Engenharia Informática |
URI: | https://hdl.handle.net/1822/79825 |
Acesso: | Acesso aberto |
Aparece nas coleções: | BUM - Dissertações de Mestrado DI - Dissertações de Mestrado |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Adriano Dias Teixeira.pdf | Dissertação de Mestrado | 4,42 MB | Adobe PDF | Ver/Abrir |