This course builds upon the skills and coding practices learned in both Principles of Secure Coding and Identifying Security Vulnerabilities courses one and two in this specialization.
This course uses the focusing technique that asks you to think about: “what to watch out for” and “where to look” to evaluate and ultimately remediate fragile C++ library code.
WEEK 1
6 hours to complete
Users Privileges and Environment Variables
In this module you will be able to manage users and privileges when you run programs or sub-programs. You will be able to identify and use the different types of privileges on a Linux (and UNIX-like) system. You'll be able to identify how program shells preserve environment settings. You will be able to examine how your shell (or other program that uses the PATH variable) deals with multiple versions of that variable.
17 videos (Total 107 min) 4 readings 2 quizzes
WEEK 2
6 hours to complete
Validation and Verification Buffer and Numeric Overflows and Input Injections
In this module you will be able to breakdown how the process of checking inputs known as validation and verification works. You will be able to avoid and buffer numeric overflows in your programs. You will be able to discover what happens when you call functions with parameters that cause overflows. And finally you will be able to detect various input injections such as cross-site scripting and SQL injections and be able to describe the consequences of not examining input.
17 videos (Total 162 min) 2 readings 2 quizzes
WEEK 3
3 hours to complete
Files Subprocesses and Race Conditions
In this module you will be able to describe how files and subprocesses interact and be able to create subprocesses and shell scripts. You will also be able to identify and prevent race conditions in your programs and practice cleaning out environments to make them safe for untrusted subprocesses.
13 videos (Total 80 min) 1 reading 2 quizzes
WEEK 4
7 hours to complete
Randomness Cryptography and Other Topics
In this module you will be able to distinguish between pseudo-randomness and actual randomness. You will be able to apply randomness in the coding environment and generate random numbers and look at their distribution. You'll be able to identify and describe how and why cryptography is used as well as why you should use trusted cryptography code libraries instead of crafting your own solution. You will be able to analyze and consider best practices for handling sensitive information passwords crypto keys how to handle errors in security sensitive programs and how to defend against string attacks. You will be able to hash a password and then try to guess another one. You will be able to practice cleaning out environments to make them safe for untrusted subprocesses as well as practice handling integer overflow.
19 videos (Total 97 min) 4 readings 2 quizzes
Tham gia đánh giá khóa học
Nếu bạn đã học qua khóa học này thì mời bạn tham gia đóng góp ý kiến và đánh giá để cộng đồng bạn học có thêm thông tin tham khảo.
Cung cấp bởi: Coursera / University of California Davis
Thời lượng: 22 hours
Ngôn ngữ giảng dạy: Tiếng Anh
Chi phí: Miễn phí / 0
Đối tượng: Intermediate
Thông tin về nhà cung cấp
Coursera (/ kərˈsɛrə /) là một nền tảng học tập trực tuyến toàn cầu được thành lập vào năm 2012 bởi 2 giáo sư khoa học máy tính của đại học Stanford là Andrew Ng và Daphne Koller, nền tảng này cung cấp các khóa học trực tuyến (MOOC) cho cộng đồng người học online.
Coursera hợp tác với các trường đại học danh tiếng tại Bắc Mỹ và trên khắp thế giới, cùng với nhiều tổ chức khác để cung cấp các khóa học trực tuyến chất lượng, theo chuyên ngành và được cấp chứng chỉ trong nhiều lĩnh vực như kỹ thuật, khoa học dữ liệu, học máy, toán học, kinh doanh, khoa học máy tính, tiếp thị kỹ thuật số, nhân văn, y học, sinh học, khoa học xã hội , và nhiều ngành khác.