Secure Coding Practices in Java: Challenges and Vulnerabilities
Na Meng, Stefan Nagy, Daphne Yao, Wenjie Zhuang, Gustavo Arango Argoty

TL;DR
This study analyzes StackOverflow discussions to identify key challenges and vulnerabilities in Java secure coding, highlighting issues with cryptography, Spring security, and common insecure coding practices.
Contribution
It provides an empirical analysis of developer concerns, challenges, and vulnerabilities in Java secure coding, especially in authentication, authorization, and cryptography APIs.
Findings
Developers face challenges with cryptography and Spring security APIs.
Common vulnerabilities include insecure hash functions and SSL/TLS bypasses.
Security issues are often due to insufficient secure coding guidance.
Abstract
Java platform and third-party libraries provide various security features to facilitate secure coding. However, misusing these features can cost tremendous time and effort of developers or cause security vulnerabilities in software. Prior research was focused on the misuse of cryptography and SSL APIs, but did not explore the key fundamental research question: what are the biggest challenges and vulnerabilities in secure coding practices? In this paper, we conducted a comprehensive empirical study on StackOverflow posts to understand developers' concerns on Java secure coding, their programming obstacles, and potential vulnerabilities in their code. We observed that developers have shifted their effort to the usage of authentication and authorization features provided by Spring security--a third-party framework designed to secure enterprise applications. Multiple programming challenges…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Security and Verification in Computing · Software Engineering Research
