Interacting with the World

This course describes many ways a program can interact with the world.


  • Introduction Video — 00:02:32
    • Let’s take a look at what is included in this course.

  • Command Line Arguments Video — 00:16:42
    • How long can command-line arguments be, and how do we validate them?

  • Environment Variables Video — 00:10:24
    • How can a hacker use the environment variable to execute malicious code with higher privileges?

  • Files Video — 00:37:56
    • Which function families can we use to manipulate files, and how do we use them safely?

  • stdin / stdout / stderr Video — 00:03:01
    • Explore stdin/stdout/stderr and how to safely use these special streams.

  • File Name Validation Video — 00:28:46
    • How can a hacker use filename to make a program access file other than the permitted ones? How can a program protect itself against that?

  • Sockets Video — 00:14:20
    • This video explores how to safely use datagram and stream sockets.

  • Network Address Validation Video — 00:08:04
    • In this video, you’ll look at how to validate network addresses and limit where the network request come from.

  • Loading Shared Objects or Launching Executables Video — 00:13:37
    • Take a look at how loading shared objects or executables can cause security issues, and how to prevent these issues.


Course description

In this course, you’ll explore the many different ways a program can interact with the world. This includes files, file name validation and stdin/stdout/stderr. For each topic, the security aspects of the interaction are discussed and recommendations are

Meet the author

Martin Dubois obtained a degree in computer engineering from Laval University, Québec City, in 1993. He worked in many high-tech start-ups as software developer and software development leader. He mainly developed in C and C++, creating embedded software and device drivers for Windows and Linux. In 2000, he became a freelancer. He helps clients to develop safe, functional and efficient software systems. In addition to developing in C and C++, he provides expert corporate training about device driver development and other related subjects.

Martin is deeply interested in computer security. He never misses the Québec City Hackfest event and even presented subjects twice. He is also a part-time lecturer at colleges and universities, where he teaches computer science, programming and network security.

Associated NICE Work Roles

All Infosec training maps directly to the NICE Workforce Framework for Cybersecurity to guide you from beginner to expert across 52 Work Roles.

  • Multi-Disciplined Language Analyst
  • Cyber Operator
  • Data Analyst

You're in good company


We use Infosec Skills to provide continuous training to our technicians and to prepare them for various certifications. Infosec Skills allows us to create personalized training programs that focus on each of our technicians’ particular roles and see their progress as they take courses. We also, recommend it to clients to make their IT support teams better.

Caleb Yankus


This has been utilized to bridge the skills gap across our cyber team and to aid them as they prepare for their various certifications. It also has provided a nice learning foundation for our various cyber team members to utilize as we continue to find ways for cross-utilization with operations while minimizing the downtime needed to ensure everyone’s knowledge is the same.

Daniel Simpson


We use Infosec Skills to provide base level knowledge for employees. We also use the services to provide in depth learning for employees as they encounter new technologies. If an employee is is assigned to a new project, we can rely on Infosec Skills to provide a rapid concentrated learning environment. This rapid concentrated learning positions our employees for success.

Infosec Skills Teams client

Plans & pricing

  • Infosec Skills Personal

    $299 / year

    • 190+ role-guided learning paths (e.g., Ethical Hacking, Threat Hunting)
    • 100s of hands-on labs in cloud-hosted cyber ranges
    • Custom certification practice exams (e.g., CISSP, Security+)
    • Skill assessments
    • Infosec peer community support
  • Infosec Skills Teams

    $799 per license / year

    • Team administration and reporting
    • Dedicated client success manager
    • Single sign-on (SSO)
      Easily authenticate and manage your learners by connecting to any identity provider that supports the SAML 2.0 standard.
    • Integrations via API
      Retrieve training performance and engagement metrics and integrate learner data into your existing LMS or HRS.
    • 190+ role-guided learning paths and assessments (e.g., Incident Response)
    • 100s of hands-on labs in cloud-hosted cyber ranges
    • Create and assign custom learning paths
    • Custom certification practice exams (e.g., CISSP, CISA)
    • Optional upgrade: Guarantee team certification with live boot camps

Unlock 7 days of free training

  • 1,400+ hands-on courses and labs
  • Certification practice exams
  • Skill assessments

Award-winning training that you can trust

Comprehensive Cybersecurity Training - Infosec Skills
Cybersecurity Education and Training Gold Award - Infosec IQ
Top Rated Award - Infosec Skills
2021 G2 Summer - Leader - Tech Skills Dev, Online Course, eLearning Content
Top 20 Company - Online Learning Library