Express res.sendfile throwing forbidden error
Full error message
I have this code: res.sendfile( '../../temp/index.html' ) However, it throws this error: Error: Forbidden at SendStream.error (/Users/Oliver/Development/Personal/Reader/node_modules/express/node_modules/send/lib/send.js:145:16) at SendStream.pipe (/Users/Oliver/Development/Personal/Reader/node_modules/express/node_modules/send/lib/send.js:307:39) at ServerResponse.res.sendfile (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/response.js:339:8) at exports.boot (/Users/Oliver/Development/Personal/Reader/server/config/routes.js:18:9) at callbacks (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:161:37) at param (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:135:11) at pass (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:142:5) at Router._dispatch (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:170:5) at Object.router (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:33:10) at next (/Users/Oliver/Development/Personal/Reader/node_modules/express/node_modules/connect/lib/proto.js:199:15) Can anyone tell me why this might be?
Solutionsource: stackoverflow \u2197
I believe it's because of the relative path; the "../" is considered malicious. Resolve the local path first, then call res.sendfile. You can resolve the path with path.resolve beforehand. var path = require('path'); res.sendFile(path.resolve('temp/index.html'));
API access
Get this solution programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/error/077e6c215f9e13d465a827348b6475adb7897ec4769c62aa59ce2e3d383f56cfhash \u00b7 077e6c215f9e13d465a827348b6475adb7897ec4769c62aa59ce2e3d383f56cf