90 lines
1.6 KiB
Plaintext
90 lines
1.6 KiB
Plaintext
include::../description.adoc[]
|
|
|
|
include::../ask-yourself.adoc[]
|
|
|
|
include::../recommended.adoc[]
|
|
|
|
== Sensitive Code Example
|
|
|
|
Node.js https://nodejs.org/api/fs.html[``fs``]
|
|
|
|
----
|
|
const fs = require('fs');
|
|
|
|
fs.chmodSync("/tmp/fs", 0o777); // Sensitive
|
|
----
|
|
|
|
----
|
|
const fs = require('fs');
|
|
const fsPromises = fs.promises;
|
|
|
|
fsPromises.chmod("/tmp/fsPromises", 0o777); // Sensitive
|
|
----
|
|
|
|
----
|
|
const fs = require('fs');
|
|
const fsPromises = fs.promises
|
|
|
|
async function fileHandler() {
|
|
let filehandle;
|
|
try {
|
|
filehandle = fsPromises.open('/tmp/fsPromises', 'r');
|
|
filehandle.chmod(0o777); // Sensitive
|
|
} finally {
|
|
if (filehandle !== undefined)
|
|
filehandle.close();
|
|
}
|
|
}
|
|
----
|
|
|
|
Node.js https://nodejs.org/api/process.html#process_process_umask_mask[``process.umask``]
|
|
|
|
----
|
|
const process = require('process');
|
|
|
|
process.umask(0o000); // Sensitive
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
Node.js https://nodejs.org/api/fs.html[``fs``]
|
|
|
|
----
|
|
const fs = require('fs');
|
|
|
|
fs.chmodSync("/tmp/fs", 0o770); // Compliant
|
|
----
|
|
|
|
----
|
|
const fs = require('fs');
|
|
const fsPromises = fs.promises;
|
|
|
|
fsPromises.chmod("/tmp/fsPromises", 0o770); // Compliant
|
|
----
|
|
|
|
----
|
|
const fs = require('fs');
|
|
const fsPromises = fs.promises
|
|
|
|
async function fileHandler() {
|
|
let filehandle;
|
|
try {
|
|
filehandle = fsPromises.open('/tmp/fsPromises', 'r');
|
|
filehandle.chmod(0o770); // Compliant
|
|
} finally {
|
|
if (filehandle !== undefined)
|
|
filehandle.close();
|
|
}
|
|
}
|
|
----
|
|
|
|
Node.js https://nodejs.org/api/process.html#process_process_umask_mask[``process.umask``]
|
|
|
|
----
|
|
const process = require('process');
|
|
|
|
process.umask(0o007); // Compliant
|
|
----
|
|
|
|
include::../see.adoc[]
|