Materials and tools used in a security reviewIllustration of a working environment

Enrolment opening soon

XSS from the inside

XSS and browser code execution

Understand why the same text is safe in one place but executes code in another. Analyse reflected, stored and DOM XSS alongside modelled retest outcomes. Separately, run limited tests with a harmless marker in an isolated browser environment. Their results do not verify a fix across the whole application.

PLN 449planned price including tax

In your browser · No installation · Tutor and narration

FormatIn your browser, at your own pace
Syllabus10 topic areas
Edition languagePolish
Signup typeFree waitlist

XSS from the inside

Join the waitlist

Have a question? Email me

You can withdraw your consent at any time. This signup covers the selected course — we will not add you to the lists for the other courses automatically.

Open your browser. Start learning.

The tutor shows you.
The narrator explains. You practice.

Do not spend your first evening configuring an environment. The application, tools and task context are in one place. You do not need Docker, a VPN, a virtual machine or paid software.

See what to pay attention to

A virtual tutor walks you through the example and highlights important parts of the application, code or tool. Connect the instruction to what is happening on screen.

Hear why the result matters

Narration explains the mechanism, decision and result. Pause the guidance, return to an earlier step and work through it at your own pace.

Test your own reasoning

Take over in the exercise: change data, run a test or make a decision. Compare the result and improve your solution using the explanation.

One environment, without switching between a video and a local installation. Tools fit the topic: from HTTP requests and code to a terminal, calculator or document. Practice in simulators and prepared cases, without attacking other people's systems.

What will you be able to do?

Know when data becomes code.

Instead of trying the same string everywhere, choose a test for the place where the application uses user content.

Starting point

One XSS example works, but a similar one does not.

The skill you develop

Recognize HTML, attribute, JavaScript and DOM contexts.

How you test it in practice

Identify where data is used and explain why a test suits that context.

Starting point

You treat reflected text in a response as code execution.

The skill you develop

Distinguish storage, display and actual browser execution.

How you test it in practice

Obtain limited proof in the lab, identifying the recipient, display conditions and observed effect.

Starting point

The fix blocks the test but breaks the editor or preview.

The skill you develop

Assess context-specific protection alongside legitimate functionality.

How you test it in practice

Compare dangerous input with allowed content. Justify encoding or sanitization and the role of additional protections.

Why does this matter beyond the course?

Practice analyzing forms, editors, messages and previews to report confirmed issues and verify fixes without losing functionality.

Connect each skill to a concrete work product. Return to explanations while you practice.

A syllabus backed by materials

Specific topics.
Practice that helps you understand them.

See what makes up the syllabus: lessons, explanations, examples and exercises. The figures below describe different types of materials.

12chapters
Topic chapters in the current course materials. Subviews and indexes of the same content do not increase this count.
252narrated steps
Distinct pairs of screen text and narration after removing identical duplicates. These are guidance segments, not separate complete lessons.
41exercise variations
18 demonstration cases and 23 XSS levels. The application narrative model is separate from limited proof of execution in the browser.
12practical tasks
A separate practical task collection. Tasks are not an external exam or confirmation of independent competence.

The figures describe the English-language source materials. The waiting list is for the planned Polish edition. These counts do not mean its translation is complete. Demonstration steps, examples and tasks are different units, not hours of video or counts of unique vulnerabilities.

Entry point

Who is this course for?

  • Pentesters and testers who want to recognize XSS contexts themselves and build meaningful tests.
  • People who want to understand the differences between reflection, data storage and actual execution.
  • Frontend developers working with HTML, DOM, user content and cross-window communication.

What helps at the start

  • Basics of HTML, JavaScript and HTTP requests.

Available in Polish and English — you can switch language at any time. Command names, code snippets and standard identifiers remain in their original form.

How you learn

First, understand.
Then, do it yourself.

The tutor walks through an example and explains each decision. In the exercise, return to the context, check the result and improve your answer.

  1. Understand the situation

    Goal, constraints and inputs. Know what you are testing and why.

  2. See the mechanism

    Watch a demonstration with tutor commentary, step by step.

  3. Complete the task

    Work with data, a tool or a scenario. Compare the result with your expectation.

  4. Draw a conclusion

    Justify your decision and understand its limitations. Return to anything that needs improvement.

Exercises use simulators and selected mechanisms that run in the browser. They do not require attacking other people's systems.

Planned syllabus

Know what you are learning. And why.

Each area develops a specific skill. Learn not only the topic but also the action and outcome that learning leads to.

Each topic includes a skill and a concrete exercise outcome.

I want to join the list
01Context matters

Find data in HTML text, attributes, JavaScript strings, URLs or embedded JSON. Trace the boundaries recognized by the parser in each location. Use this to choose a test and separate data from code.

Tutor-guided exercise

What you practice
Choose a test for where data is used in the document.
Practical outcome
Identify the HTML, attribute or script context. Explain why the same string works in one place and remains text in another.
02Reflected, stored and DOM XSS

Compare a value returned directly in a response, content stored for later display and data processed by a DOM script. Identify the source and sink for each variation. Build a test matching the actual data path.

Tutor-guided exercise

What you practice
Recognize the path from input to browser execution.
Practical outcome
Trace reflection, storage or DOM processing. Distinguish how data arrives from where it is used unsafely.
03Safe proof

Start with ordinary content, then use a marker showing execution in an isolated browser exercise. Compare it with mere text reflection and a blocked attempt. Record the role, context and observation without retrieving passwords, tokens or private data.

Tutor-guided exercise

What you practice
Document execution of a harmless marker in an isolated browser test.
Practical outcome
Connect the input, context and result of an actual test in an isolated browser environment. This limited evidence does not confirm execution in a user session of the modelled application.
04A second user

Trace a customer's ticket as it is later displayed to a support agent. Distinguish saving the message from the recipient opening it. Prepare a test showing whose context produces the effect and why that person's role matters.

Tutor-guided exercise

What you practice
Consider the content recipient and their permissions when assessing impact.
Practical outcome
Compare one account saving content with another opening it. Identify the conditions needed for execution.
05DOM and cross-window communication

Analyze the flow from a URL fragment and postMessage to a page-modifying operation. Check message origin, structure and safe API selection. Compare innerHTML with inserting a value as text.

Tutor-guided exercise

What you practice
Trace the data source, origin check and DOM sink.
Practical outcome
Analyze a prepared message flow. Identify a missing sender check or unsafe API used to display content.
06Rich text and HTML sanitization

Practice a case where the application must retain bold text or links but remove dangerous constructs. Compare sanitization rules with the DOM created by the browser. Include allowed link protocols and tests of legitimate formatting.

Tutor-guided exercise

What you practice
Distinguish allowed formatting from active content.
Practical outcome
Compare dangerous input with valid HTML. Assess sanitization alongside the editor's functionality.
07Effects and limitations

Determine which state and functions a script can reach in the tested context. Distinguish cookie reading from acting with an automatically attached session. Describe the impact on the specific application without assigning identical consequences to every XSS.

Case analysis

What you practice
Describe impact based on reachable behavior, not the vulnerability name.
Practical outcome
Identify permissions, interaction and data available in the case. Distinguish demonstrated effects from possible but untested extensions.
08CSP and Trusted Types

Compare CSP blocking execution with removing the cause in code. Learn the role of Trusted Types and a safe value-creation policy. Check which protection acted in each variation and what still needs fixing.

Case analysis

What you practice
Recognize the role and limits of additional protections.
Practical outcome
Compare prepared policy and DOM-operation variants. Explain why a blocked attempt does not prove the unsafe data flow was removed.
09Context-specific fixes

Choose encoding for the display context, safe DOM operations for plain text and sanitization for allowed HTML. Compare vulnerable and corrected code. Check that the change removes the cause instead of blocking only one input example.

Tutor-guided exercise

What you practice
Choose encoding, sanitization or a safe API for where data is used.
Practical outcome
Compare the vulnerable fragment with its fix. Justify context-specific protection instead of universal character filtering.
10Repeatable retest

Analyse the supplied expected retest outcomes for search, saved messages, DOM previews and rich text. These are modelled outcomes, not observations from application tests run again. Plan the missing tests, including checks that legitimate functionality still works after the fix.

Workshop with prepared data

What you practice
Assess modelled retest outcomes and plan verification of the fix.
Practical outcome
Analyse the expected retest outcomes supplied by the model, not observations from application tests run again. Identify the missing checks for the recipient, context and valid content. A separate test in an isolated browser environment provides only limited evidence of marker execution.

In practice

What will you work on
during the course?

Each case has context, a concrete action and an outcome. The goal is not to memorize a command but to understand why the result changed.

A message seen by a second user

Trace a ticket through the application model, from submission to display to a support agent. Compare the supplied expected outcomes before and after the fix, and plan a test in the recipient's session. The model does not run that test.

Work productAn explanation of the modelled stored XSS case and a plan for execution and regression tests in the recipient's session.

Safe previews and rich content

Analyse data reaching the DOM and the requirements for allowed formatting. Choose a safe API or sanitisation and plan tests for dangerous input and valid content. Separately, test a selected marker in an isolated browser environment. That test does not verify the sanitisation mechanism used by the application.

Work productA context matrix and tests covering both protection and feature usability.

Certificate of completion

Finish the course.
Get the certificate.

When you complete the course, the certificate is issued automatically and emailed to you. It shows your name, the date of issue and a unique code, and its second page lists the course scope.

  • Anyone, such as an employer, can check the code without logging in.
  • The certificate is issued in English.
  • It confirms completion of the course; it is not an industry certification.

Code verification: cyberszkola.pl/verify

Sample certificate of completion, page 1, with example details and a SPECIMEN watermark
Sample certificate, page 2: course scope
Sample certificate: page 1 and the course scope on page 2. The name, date and code are examples.
Enlarge course scope
Sample certificate, page 2: course scope

Upcoming standalone course

A defined scope.
Without buying the whole path.

  • Reflected, stored and DOM XSS cases, plus postMessage communication.
  • Isolated browser exercises with harmless execution markers.
  • Comparisons of encoding, sanitization, CSP and Trusted Types in specific contexts.
  • Certificate of completion in English, with a verification code.

Planned course price

PLN 449including tax

Polish edition · Launch date not yet announced

Notify me at launch

Joining is free. Before sales open, you will receive the date, full scope and purchase terms. We are not taking payments today. This is a separate interest list, not a place reservation or purchase.

For companies and teams

Training for your team.
On our platform or in your LMS.

  • Company accounts, departments and licences on our platform, with progress reports for managers.
  • Delivery into your company's e-learning system. Progress and completion show up in your own reports.
  • VAT invoice issued to your company.

Compatible with LMS platforms including:

  • Moodle
  • TalentLMS
  • Cornerstone
  • Docebo
  • SAP SuccessFactors
  • Workday Learning
  • Absorb
  • 360Learning

and other platforms that support e-learning standards.

Price for companies

Individual quotedepends on the number of licences, access period and delivery method

Delivery into your company's own LMS from 50 licences.

Ask for a quote

Write to kontakt@cyberszkola.pl: the number of people, the courses you want and your LMS, if you use one.

Jacek Wlodarczyk

Project author

Jacek Wlodarczyk

Creator of Cyberwiedza, cyberszkola and AI SecLabs. In these courses, I connect explanations of mechanisms with practice, observation and decisions you need to justify.

Running a command is not enough. What matters is what its output confirms, what it does not confirm and what the next step should be.

More about the author

Before joining

Good to know.

Will I only use ready-made XSS examples?

Examples are a starting point for identifying the context and choosing a test. In an isolated browser environment, test actual execution of a harmless marker. The retest workshop instead uses supplied expected outcomes: learn to plan verification of the fix, without performing a full application retest.

How much JavaScript should I know at the start?

Basic understanding of HTML, variables, functions and page modification will help. The course explains data flow and DOM operations but does not replace an introduction to JavaScript programming.

Am I buying a course now?

No. This is an upcoming course announcement and an interest list. Joining is not a purchase, a place reservation or a commitment to pay.

When will it launch, and what will it cost?

The launch date, price and access terms will be announced before sales open. The interest list is how we send that information.

What language will the course use?

The course is available in Polish and in English — you can switch language at any time, and lessons, exercise explanations and narration exist in both. Commands, code and tool names keep their original syntax, as used in everyday work.

Do I need to install Docker, a VPN or my own lab?

No. All course exercises run in your browser on a computer with internet access. Training applications, terminals, editors and workshops are part of the platform. You do not install Docker, a virtual machine or a VPN, and you do not need paid external tools.

Is this just a collection of videos?

No. You work in an interactive environment. A virtual tutor highlights important elements, and narration explains the action and its result. Pause the lesson, return to earlier steps and run your own experiments. This guidance is built into the course, not individual consultation with a person.

Do the exercises act on other people's systems?

No. You use training applications, simulators and prepared data. Learn the mechanism and its limitations in a safe environment. External resources are supplementary, not required to complete the exercises.

Will I receive a certificate or a job guarantee?

Yes, a certificate of completion. When you complete the course, you receive a certificate in English with a unique code that anyone can check at cyberszkola.pl/verify. It confirms completion of the course and is issued by the author; it is not an industry certification. We do not promise employment.

Are these official OWASP or ISO courses?

No. These are independently authored courses using public references and original cases. They do not replace licensed standards, accreditation or qualifications required in regulated industries.

Join the waitlist

Do not miss the launch: XSS from the inside

Leave your email address. We will send you news of enrollment, the syllabus and first-edition terms. You will not need to keep checking this page.

Planned price: PLN 449 including tax

  • Launch news for your chosen course
  • The full offer before you decide to buy
  • Free to join, no obligation to buy

Join the waitlist

Have a question? Email me

You can withdraw your consent at any time. This signup covers the selected course — we will not add you to the lists for the other courses automatically.