Cybersecurity Project · Application Security
Secure Coding & Application Security
Five application-security case studies comparing vulnerable implementations with remediated and re-tested versions across C, Java, PHP, and Python.
Academic / secure-coding projectContext & Scope
This project uses controlled vulnerable examples to study common application-security weaknesses and their remediation. The purpose is defensive secure-coding analysis: understand the weakness, correct the implementation, and validate the resulting security control.
Objective
Demonstrate how common application vulnerabilities arise at implementation level, apply appropriate defensive controls, and verify the effectiveness of remediation through re-testing.
Secure Development Approach
- Created deliberately vulnerable examples representing common software-security weaknesses in controlled project environments.
- Analysed the security impact and root cause of each implementation.
- Remediated the C buffer-overflow example using bounded memory-handling techniques.
- Remediated Java SQL injection using parameterized database queries.
- Remediated reflected XSS in PHP using context-aware output encoding.
- Removed hardcoded Python credentials by externalizing secret configuration.
- Restricted insecure Java object deserialization to reduce unsafe object-processing risk.
- Re-tested the remediated implementations to validate that the security controls addressed the demonstrated weaknesses.
Case Studies
- Buffer Overflow — C: compared unsafe memory handling with a bounded implementation.
- SQL Injection — Java: demonstrated the risk of unsafe query construction and applied parameterized queries.
- Reflected XSS — PHP: demonstrated unsafe reflected output and applied context-aware encoding.
- Hardcoded Credentials — Python: demonstrated embedded-secret risk and moved configuration outside the source code.
- Insecure Deserialization — Java: examined unsafe object deserialization and applied more restrictive processing controls.
- Each case study follows a vulnerability → remediation → re-test workflow rather than presenting vulnerable code as the final outcome.
Remediation Evidence
Selected vulnerable-versus-remediated examples demonstrating the project workflow: identify, test, remediate, and re-test.




Security Boundary
The vulnerable examples exist only to support controlled security education, analysis, remediation, and validation. The portfolio emphasises defensive coding practices and does not present vulnerable implementations as deployment-ready software.
Security Relevance
The project demonstrates secure-development thinking across memory safety, database access, web output handling, credential management, object deserialization, vulnerability analysis, remediation design, and security re-testing.