Skip to content

Security-Knowledge-Framework/secure-design-principles

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

layout title permalink
post
Introduction
/

Secure Design Principles for Software Development

Welcome to the Secure Design Principles for Software Development. This guide is designed to give developers a practical and easy-to-implement blueprint to jumpstart secure software development practices. By focusing on key principles, developers can mitigate a significant number of vulnerabilities, including those related to injection and IDOR (Insecure Direct Object References).

Overview

This repository provides a structured guide on key secure design principles, including whitelisting, type checking, length checking, threat modeling, and addressing authorization flaws. Each section is crafted to be straightforward, providing developers with clear guidance on how to integrate these practices into their coding processes effectively.

Secure Design Principles

Whitelisting

Learn how to implement effective whitelisting mechanisms in your applications, which are crucial for controlling what types of inputs or behaviors are permitted, thereby reducing the risk of unwanted or malicious data processing.

Type Checking

Understand the importance of type checking in your code to prevent type-related errors and vulnerabilities, particularly those that can be exploited through injection attacks.

Length Checking

Discover how to implement length checking to ensure that inputs do not exceed expected bounds, which can protect your applications from various forms of overflow attacks.

Threat Modeling

Explore basic threat modeling practices to systematically analyze the security of your applications. This section helps you identify potential security issues before they can be exploited.

IDOR (Authorization Flaws)

Gain insights into common authorization flaws like IDOR, and learn strategies to ensure robust authorization checks that confirm a user’s rights to access or modify resources.

Output Encoding / XSS

Learn how output encoding can prevent Cross-Site Scripting (XSS) vulnerabilities by ensuring that user-controlled data is safely rendered in various browser contexts (HTML, attributes, JavaScript, CSS, and URLs). This section provides guidance on proper encoding practices depending on where untrusted data ends up in the page, and how defenses like CSP (Content Security Policy) and sandboxing can enhance protection.

Target Audience

This guide is specifically crafted for:

  • Developers: Focused on those new to security or looking to enhance their understanding of secure coding practices.
  • Security Champions: Developers who are tasked with leading security initiatives within their teams.

Contributing

We encourage contributions that add value to this guide, particularly practical examples and enhancements on secure coding practices. Please contribute through pull requests or issues. Access and contribute to the repository HERE.

License

This project is released under the Apache 2 license. For more details, please refer to the LICENSE file.


About

Build Jekyll site with GitBook style!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 37.4%
  • JavaScript 31.2%
  • HTML 28.0%
  • Smarty 3.2%
  • Ruby 0.2%