Bird
Raised Fist0
Postmantesting~5 mins

Security header validation in Postman - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of security headers in HTTP responses?
Security headers help protect web applications by instructing browsers how to handle content securely, reducing risks like cross-site scripting and clickjacking.
Click to reveal answer
beginner
Name three common security headers you should validate in API testing.
Common security headers include Content-Security-Policy, X-Frame-Options, and Strict-Transport-Security.
Click to reveal answer
intermediate
How can you validate security headers using Postman tests?
In Postman, you write test scripts that check if the response headers contain expected security headers with correct values using pm.response.headers.get().
Click to reveal answer
beginner
What does the Strict-Transport-Security header do?
It tells browsers to only connect to the site using HTTPS for a specified time, preventing insecure HTTP connections.
Click to reveal answer
intermediate
Why is it important to check the X-Content-Type-Options header?
This header prevents browsers from MIME-sniffing a response away from the declared content-type, reducing the risk of executing malicious files.
Click to reveal answer
Which security header prevents your site from being embedded in iframes on other sites?
AX-Frame-Options
BContent-Security-Policy
CStrict-Transport-Security
DX-Content-Type-Options
In Postman, which method retrieves a response header value for validation?
Apm.response.body.get()
Bpm.response.headers.get()
Cpm.request.headers.get()
Dpm.test.headers.get()
What does the Content-Security-Policy header help prevent?
AServer crashes
BSlow network connections
CPassword leaks
DCross-site scripting attacks
Which header enforces HTTPS connections by browsers?
AStrict-Transport-Security
BX-Frame-Options
CContent-Security-Policy
DX-Content-Type-Options
Why should you validate security headers in API responses?
ATo improve API response speed
BTo check API data format
CTo ensure the API is secure against common web attacks
DTo verify API authentication tokens
Explain how you would write a Postman test to check for the presence and correct value of the X-Frame-Options header.
Think about how to get header values and assert them in Postman test scripts.
You got /3 concepts.
    Describe why security headers are important in web applications and what risks they help reduce.
    Consider common web vulnerabilities and how headers can protect against them.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which HTTP header is commonly used to prevent clickjacking attacks by controlling if a page can be displayed in a frame or iframe?
      easy
      A. Strict-Transport-Security
      B. Content-Security-Policy
      C. X-Frame-Options
      D. Cache-Control

      Solution

      1. Step 1: Understand clickjacking protection

        Clickjacking is prevented by restricting framing of pages.
      2. Step 2: Identify the header for frame control

        The X-Frame-Options header controls if a page can be framed.
      3. Final Answer:

        X-Frame-Options -> Option C
      4. Quick Check:

        Clickjacking protection = X-Frame-Options [OK]
      Hint: Remember: Frame control = X-Frame-Options header [OK]
      Common Mistakes:
      • Confusing Content-Security-Policy with frame control
      • Thinking Strict-Transport-Security controls framing
      • Ignoring the role of X-Frame-Options
      2. Which Postman test script correctly checks if the Content-Security-Policy header exists in the response?
      easy
      A. pm.test('CSP header present', () => pm.expect(pm.response.headers.get('Content-Security-Policy') !== null).to.be.true);
      B. pm.test('CSP header present', () => pm.response.headers.has('content-security-policy') === false);
      C. pm.test('CSP header present', () => pm.response.headers.get('Content-Security-Policy') === undefined);
      D. pm.test('CSP header present', () => pm.response.headers.has('Content-Security-Policy'));

      Solution

      1. Step 1: Understand Postman header methods

        pm.response.headers.get() returns the header value or null if missing.
      2. Step 2: Check for header existence correctly

        Checking if the value is not null confirms header presence.
      3. Final Answer:

        pm.test('CSP header present', () => pm.expect(pm.response.headers.get('Content-Security-Policy') !== null).to.be.true); -> Option A
      4. Quick Check:

        Header exists if get() !== null [OK]
      Hint: Use get() !== null to check header presence [OK]
      Common Mistakes:
      • Using headers.has() which returns boolean but not tested properly
      • Checking for undefined instead of null
      • Negating the condition incorrectly
      3. Given this Postman test code, what will be the test result if the response header X-Content-Type-Options is missing?
      pm.test('X-Content-Type-Options header is set', () => {
        pm.response.to.have.header('X-Content-Type-Options');
      });
      medium
      A. Test passes because header check is optional
      B. Test passes but logs a warning
      C. Test throws a syntax error
      D. Test fails because header is missing

      Solution

      1. Step 1: Understand the assertion used

        pm.response.to.have.header() asserts the header must exist.
      2. Step 2: Analyze missing header effect

        If the header is missing, the assertion fails and test fails.
      3. Final Answer:

        Test fails because header is missing -> Option D
      4. Quick Check:

        Missing required header = test failure [OK]
      Hint: Required header missing causes test failure [OK]
      Common Mistakes:
      • Assuming test passes if header is missing
      • Confusing syntax error with assertion failure
      • Thinking warnings are logged instead of failure
      4. Identify the error in this Postman test script that checks if the Strict-Transport-Security header includes max-age=31536000:
      pm.test('HSTS max-age check', () => {
        pm.expect(pm.response.headers.get('Strict-Transport-Security')).to.include('max-age=31536000');
      });
      medium
      A. Not checking if header exists before calling get()
      B. Using to.include instead of to.have.string
      C. Incorrect header name casing
      D. Missing semicolon after pm.test

      Solution

      1. Step 1: Understand get() behavior when header missing

        If header is missing, get() returns null, causing error on to.include.
      2. Step 2: Identify missing existence check

        Test should first check header exists before checking content.
      3. Final Answer:

        Not checking if header exists before calling get() -> Option A
      4. Quick Check:

        Check header presence before content check [OK]
      Hint: Always verify header exists before content assertions [OK]
      Common Mistakes:
      • Assuming get() never returns null
      • Ignoring null causing test errors
      • Focusing on casing or semicolons instead
      5. You want to write a Postman test to ensure the Content-Security-Policy header disallows inline scripts by including script-src 'self'. Which test script correctly validates this?
      hard
      A. pm.test('CSP disallows inline scripts', () => { pm.expect(pm.response.headers.get('Content-Security-Policy')).to.equal("script-src 'self'"); });
      B. pm.test('CSP disallows inline scripts', () => { const csp = pm.response.headers.get('Content-Security-Policy'); pm.expect(csp).to.include("script-src 'self'"); });
      C. pm.test('CSP disallows inline scripts', () => { pm.expect(pm.response.headers.has('Content-Security-Policy')).to.be.true; });
      D. pm.test('CSP disallows inline scripts', () => { pm.expect(pm.response.headers.get('Content-Security-Policy')).to.include('unsafe-inline'); });

      Solution

      1. Step 1: Understand CSP header content

        The header can contain multiple directives; we check if it includes script-src 'self'.
      2. Step 2: Validate correct assertion method

        Using to.include checks if the string contains the directive, allowing other parts.
      3. Final Answer:

        pm.test('CSP disallows inline scripts', () => { const csp = pm.response.headers.get('Content-Security-Policy'); pm.expect(csp).to.include("script-src 'self'"); }); -> Option B
      4. Quick Check:

        Use include() to check partial CSP directive [OK]
      Hint: Use include() to check CSP directives inside header string [OK]
      Common Mistakes:
      • Using to.equal which requires exact match
      • Only checking header presence without content
      • Checking for 'unsafe-inline' which allows inline scripts
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard