Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

How to Avoid Writing Insecure Code

via Udemy

Overview

Best ways to prevent coding mistakes that hackers abuse

What you'll learn:
  • Sharpen secure coding skills with coding exercises in C#, Javascript, Python and Java.
  • The recurring security pitfalls that developers fall into
  • Manageable and practical root causes of many famous software weaknesses
  • Ability to map security bugs to specific coding patterns in your software
  • Reflexive security questions you should ask during coding
  • Secure and insecure ways of validating the input
  • Get familiar with infamous security bugs; XXE, Session Puzzling, Mass Assignment, XSS, Directory Traversal, IDOR, Prompt Injection and more

This training is about writing secure software. We chose to deliver secure coding practices using a perspective where widespread coding security mistakes are classified into understandable chunks. We hope that this will make more sense and be more helpful to hardcore developers and analysts.

Security should be an intrinsic part of any software production methodology and its implementation. However, development is a complex process and it is extremely hard to keep a software secure as it ages. There are numerous security tools, methodologies and knowledge to produce a secure software. However, still vast number of applications include critical security bugs. Most of these bugs stem from bad coding patterns that we call software security anti-patterns or in simpler term, mistakes.

An anti-pattern is a common response to a recurring problem that is usually ineffective or worse carry risks. In other words, anti-patterns are commonly reinvented bad solutions to problems.

For example, one of the most famous anti-patterns in software development is the Spaghetti Code. In early phases of being a developer, we are usually not familiar with the importance of modularity or find little time to design first. So, we tend to produce extremely complicated, hard to understand unstructured software. This way of coding produces Spaghetti Code which is hard to maintain and write test code, however, the end product may still run perfectly and serve well in production. However, it is extremely hard to adapt to any possible new changes. Since the code is not modular or structured, it is hard to add new features. Moreover, any modification to the code effects other flows in an unpredictable manner. The maintenance is also crippled since the code’s complex form will make the life of new developers’ difficult when they are adjusting.

Similarly, there are bad design or coding choices that repeatedly lead to security bugs. It is important to be aware of these software security anti-patterns in order not to fall prey to hackers. The course will contain eight different core mistakes. Some are more prevalent than the others, however, all of them produce deadly results. In each lesson, we will first try to explain what the specific anti-pattern is all about. Then, we will move on giving one or more demos on what can go wrong when that mistake is made. At the end of each lesson, we will look at different sound and widely acknowledged solutions against insecure design or coding choices.

Taught by

Bedirhan Urgun

Reviews

4.4 rating at Udemy based on 938 ratings

Start your review of How to Avoid Writing Insecure Code

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.