Socket
Socket
Sign inDemoInstall

router

Package Overview
Dependencies
1
Maintainers
0
Versions
65
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.6 to 0.2.8

67

index.js

@@ -5,2 +5,6 @@ var common = require('common');

var fs = require('fs');
var path = require('path');
var mimes = require('mimes');
var matcher = require('./matcher');

@@ -112,4 +116,24 @@

that.file = function(pattern, base) {
that.get(pattern, exports.onfilerequest(base || '.'));
that.file = function(pattern, rewrite) {
that.get(pattern, rewrite, function(request, response) {
var url = path.normalize(request.url.split('?')[0]);
if (/\/\.\.\//.test(url)) { // security check
response.writeHead(404);
response.end();
return;
}
fs.readFile(url, function(err, buffer) {
if (err) {
response.writeHead(404);
response.end();
return;
}
response.writeHead(200, {
'content-type':mimes.resolve(url)
});
response.end(buffer);
});
});
};

@@ -127,39 +151,2 @@

exports.create = createRouter;
var fs = require('fs');
var path = require('path');
var mimes = require('mimes');
exports.onfilerequest = function(dir, options) {
options = options || {};
// TODO: add cache option
return function(request, response) {
var url = request.url.split('?')[0];
url = (request.matches && request.matches.path) || path.normalize(url);
// security check
if (/\/\.\.\//.test(url)) {
response.writeHead(404);
response.end();
return;
}
url = path.join(dir, url);
fs.readFile(url, function(err, buffer) {
if (err) {
response.writeHead(404);
response.end();
return;
}
response.writeHead(options.status || 200, {
'content-type':mimes.resolve(url)
});
response.end(buffer);
});
};
};
exports.create = createRouter;
{
"name":"router",
"version":"0.2.6",
"version":"0.2.8",
"description":"A lean and mean web router",

@@ -5,0 +5,0 @@ "contributors": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc