Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/79825

TítuloAplicações web seguras em Django
Autor(es)Teixeira, Adriano Dias
Orientador(es)Esteves, António
Data19-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.
TipoDissertação de mestrado
DescriçãoDissertação de mestrado em Engenharia Informática
URIhttps://hdl.handle.net/1822/79825
AcessoAcesso aberto
Aparece nas coleções:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Adriano Dias Teixeira.pdfDissertação de Mestrado4,42 MBAdobe PDFVer/Abrir

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID