File and directory information exposure Medium

Hidden files are sensitive because they are used to store privacy-related information or even hardcoded secrets. Allowing them while serving files from a given root directory can lead to information leakage.

Detector ID
javascript/file-and-directory-information-exposure@v1.0
Category
Common Weakness Enumeration (CWE) external icon

Noncompliant example

1var express = require('express')
2var serveStatic = require("serve-static")
3var app = express()
4
5function fileAndDirectoryInformationExposureNoncompliant()
6{
7    // Noncompliant: dotfiles variable is set to 'allow'.
8    var serveStaticMiddleware = serveStatic('public', { index: false, dotfiles: 'allow' })
9    app.use(serveStaticMiddleware)
10}

Compliant example

1var express = require('express')
2var serveStatic = require("serve-static")
3var app = express()
4
5function fileAndDirectoryInformationExposureCompliant(safeDomain)
6{
7    // Compliant: dotfiles variable is set to 'ignore'.
8    var serveStaticMiddleware = serveStatic('public', { 'index': false, 'dotfiles': 'ignore' })
9    app.use(serveStaticMiddleware)
10}