Skip to content

Commit 78eaa02

Browse files
author
ThodorhsPerros
committed
Update ANALYZERS.md with Phase 3 header specifications
Add detailed documentation for three new security header analyzers: 10. X-XSS-Protection - Purpose: Legacy XSS filter control (deprecated) - Best value: 0 (explicitly disabled) - Acceptable: 1; mode=block (legacy) - Severity: LOW when missing 11. X-Download-Options - Purpose: Prevents IE from executing downloads in site context - Only valid value: noopen - Severity: LOW when missing 12. X-Permitted-Cross-Domain-Policies - Purpose: Controls Flash/PDF cross-domain policy file access - Best value: none - Acceptable: master-only - Bad values: all (high), by-content-type, by-ftp-filename - Severity: MEDIUM when missing Each analyzer includes: - Module path - Purpose and how it works - Severity levels for all scenarios - Example good/acceptable/bad values - References to OWASP and Mozilla documentation
1 parent d0f3ecc commit 78eaa02

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed

docs/ANALYZERS.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,115 @@ Cross-Origin-Resource-Policy: cross-origin
246246

247247
---
248248

249+
### 10. X-XSS-Protection
250+
251+
**Module:** `sha/analyzers/x_xss_protection.py`
252+
253+
**Purpose:**
254+
Legacy header that controlled browser XSS filters in Internet Explorer, Chrome, and Safari. Now deprecated. Modern recommendation is to explicitly disable it or rely on Content-Security-Policy.
255+
256+
**How It Works:**
257+
- Checks for value `0` (explicitly disabled - recommended)
258+
- Detects `1; mode=block` (legacy acceptable)
259+
- Flags `1` alone as bad (creates vulnerabilities)
260+
261+
**Severity Levels:**
262+
- Missing: LOW
263+
- Value `0`: INFO (best)
264+
- Value `1; mode=block`: ACCEPTABLE (legacy)
265+
- Value `1`: BAD (medium severity)
266+
- Unknown values: BAD
267+
268+
**Good Values:**
269+
```
270+
X-XSS-Protection: 0
271+
```
272+
273+
**Acceptable Values:**
274+
```
275+
X-XSS-Protection: 1; mode=block
276+
```
277+
278+
**Bad Values:**
279+
```
280+
X-XSS-Protection: 1
281+
```
282+
283+
**References:**
284+
- [OWASP: X-XSS-Protection](https://owasp.org/www-project-secure-headers/)
285+
- [MDN: X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection)
286+
287+
---
288+
289+
### 11. X-Download-Options
290+
291+
**Module:** `sha/analyzers/x_download_options.py`
292+
293+
**Purpose:**
294+
Internet Explorer 8+ specific header that prevents the browser from executing downloaded HTML files in the context of the site, preventing Same Origin Policy violations.
295+
296+
**How It Works:**
297+
- Checks for `noopen` value
298+
- Any other value is flagged as bad
299+
300+
**Severity Levels:**
301+
- Missing: LOW
302+
- Value `noopen`: INFO
303+
- Other values: BAD (low severity)
304+
305+
**Good Values:**
306+
```
307+
X-Download-Options: noopen
308+
```
309+
310+
**References:**
311+
- [OWASP: X-Download-Options](https://owasp.org/www-project-secure-headers/)
312+
313+
---
314+
315+
### 12. X-Permitted-Cross-Domain-Policies
316+
317+
**Module:** `sha/analyzers/x_permitted_cross_domain_policies.py`
318+
319+
**Purpose:**
320+
Controls whether Adobe Flash Player, Adobe Acrobat, or PDF documents can load cross-domain policy files from the web server. Prevents untrusted Flash/PDF content from accessing site data.
321+
322+
**How It Works:**
323+
- Checks for `none` (best - completely prohibits policy files)
324+
- Detects `master-only` (acceptable - allows only /crossdomain.xml)
325+
- Flags permissive values: `all`, `by-content-type`, `by-ftp-filename`
326+
327+
**Severity Levels:**
328+
- Missing: MEDIUM
329+
- Value `none`: INFO (best)
330+
- Value `master-only`: ACCEPTABLE (low severity)
331+
- Value `all`: BAD (high severity)
332+
- Values `by-content-type`, `by-ftp-filename`: BAD (medium severity)
333+
- Unknown values: BAD (medium severity)
334+
335+
**Good Values:**
336+
```
337+
X-Permitted-Cross-Domain-Policies: none
338+
```
339+
340+
**Acceptable Values:**
341+
```
342+
X-Permitted-Cross-Domain-Policies: master-only
343+
```
344+
345+
**Bad Values:**
346+
```
347+
X-Permitted-Cross-Domain-Policies: all
348+
X-Permitted-Cross-Domain-Policies: by-content-type
349+
X-Permitted-Cross-Domain-Policies: by-ftp-filename
350+
```
351+
352+
**References:**
353+
- [OWASP: X-Permitted-Cross-Domain-Policies](https://owasp.org/www-project-secure-headers/)
354+
- [Adobe: Cross-Domain Policy](https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/xdomain.html)
355+
356+
---
357+
249358
## Severity Level Guide
250359

251360
- **CRITICAL**: Immediate security risk (currently unused)

0 commit comments

Comments
 (0)