← Back to projects

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 project

Context & 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.

Controlled testing of vulnerable C buffer overflow implementation
Controlled testing of the vulnerable buffer-handling implementation.
Remediated C buffer handling implementation after security correction
Remediated implementation using safer bounded memory-handling practices.
Controlled SQL injection testing of the vulnerable Java implementation
Controlled validation of unsafe SQL query construction in the vulnerable implementation.
SQL injection remediation using parameterized Java database queries
Remediated implementation using parameterized queries followed by security re-testing.

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.