|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/coding-mistakes-that-hackers-abuse/
课程评论:没有评论
**课程名称:** 如何避免编写不安全的代码 **课程概述:** 本课程旨在教授开发者和分析师编写安全软件的实践。通过将常见的编码安全错误归类为易于理解的“反模式”(anti-patterns),帮助学习者更深入地理解并有效避免这些问题。 在软件开发过程中,安全应成为核心要素。然而,随着软件的升级和维护,保持其安全性变得异常困难。尽管存在各种安全工具、方法和知识,但仍有大量应用程序存在严重的安全漏洞。这些漏洞大多源于不良的编码模式,即所谓的“软件安全反模式”或“错误”。 反模式是指针对反复出现的问题,尽管被普遍采纳,但通常无效甚至带来风险的解决方案。简单来说,反模式就是人们反复“重塑”的糟糕解决方案。例如,“意大利面条式代码”(Spaghetti Code)是软件开发中最著名的反模式之一。新手开发者可能不重视模块化或缺乏设计时间,导致编写出结构复杂、难以理解的非结构化软件。这种代码难以维护和测试,虽然可能在生产环境中运行良好,但一旦需要更改,适配性将非常差。由于代码缺乏模块化和结构,添加新功能困难,任何修改都可能以不可预测的方式影响其他流程。维护也因此变得异常困难,因为新开发者需要花费大量时间去理解其复杂性。 类似地,存在一些反复导致安全漏洞的糟糕设计或编码选择。了解这些软件安全反模式对于防止被黑客攻击至关重要。本课程将深入探讨八个核心的错误模式。其中一些比其他更普遍,但都可能导致灾难性的后果。 **课程结构:** * **反模式讲解:** 每个章节首先解释特定的反模式是什么。 * **案例演示:** 接着通过一个或多个演示,展示犯下该错误可能产生的后果。 * **安全解决方案:** 最后,将介绍针对不安全设计或编码选择的健全且广受认可的解决方案。 * **实践练习:** 学习者将有机会通过针对不同编程语言编写的实践编码练习来巩固所学知识。
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. But then 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. This 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. You will also have the opportunity to apply what you have learned by solving hands-on coding exercises prepared for various programming languages.