New Tenchi

Plain-English guides to how the web and software development actually work

What does "secure software development" actually mean in practice?

"Write secure code" is advice with no handle on it. Here is what the phrase actually refers to, and how the two most-cited public resources fit together for someone learning to build software.

Security is a property of the process, not a feature

The central idea behind modern secure development is that security is not a module you add at the end. It's a set of habits applied throughout building software: thinking about what could go wrong while designing, writing code defensively, checking components you depend on, and having a plan for when — not if — a problem is found. Bolted-on security fails because by the time it's bolted on, the risky decisions have already been made.

The two documents people will point you to

The OWASP Top Ten answers the question "what goes wrong?" It's a standard awareness document from the nonprofit OWASP Foundation describing the most critical categories of web-application security risk — the recurring shapes of failure, like injection, broken access control, and misconfiguration. It's short, free, and the right first read; we walk through it in What is the OWASP Top Ten?.

The NIST Secure Software Development Framework (SSDF) answers the question "what should builders do about it?" Published by the U.S. National Institute of Standards and Technology, it's a framework of secure software development practices organized around preparing the organization, protecting the software, producing well-secured software, and responding to vulnerabilities. It's written for organizations, and it describes practices rather than prescribing specific tools — which is precisely what makes it durable as technology changes.

A useful way to hold them: OWASP names the diseases; the SSDF describes the hygiene.

What the habits look like at beginner scale

You don't need an organizational framework to start acting on its spirit. The beginner-scale versions of secure-development practice look like this:

  • Treat all input as untrusted. Validate on the server, always — browser-side checks are a convenience, not a control.
  • Know your dependencies. Every library and CMS plugin is code you're shipping. Keep them updated and delete the ones you don't use.
  • Keep secrets out of code. Passwords and API keys don't belong in source files or public repositories.
  • Prefer boring, vetted solutions for anything security-critical. Never invent your own login system or cryptography when maintained, widely reviewed implementations exist.
  • Plan for failure. Know how you'd learn about a problem in your software and what you'd do first. Even for a hobby project, that can be as simple as: backups exist, restoring is tested, and updating is a known procedure.

Why learn this early rather than later

Habits are cheapest to install at the start. A developer who learns "validate on the server" in week one does it forever; one who learns it after a compromised project does it forever too, but pays tuition first. Reading the Top Ten takes an afternoon; skimming the SSDF's practice descriptions takes another; both are free. For the platform-level mechanics that these documents assume — how browsers handle scripts, cookies, and cross-origin requests — MDN Web Docs is the working reference. Start with awareness, build the habits into your normal workflow, and treat our launch checklist as the floor, not the ceiling.

Sources