
Research
/Security News
Malicious npm Packages Target WhatsApp Developers with Remote Kill Switch
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Inject dynamic resources into your html pages
npm install deposit --save
var fs = require('fs');
var http = require('http');
var deposit = require('deposit');
var d = deposit();
// Set up injectors
d.injector('fetch', require('deposit-fetch'));
d.injector('env', function (options, done) {
// Do stuff
done();
});
http.createServer(function (req, res) {
fs.createReadStream('/path/to/some/file.html')
.pipe(d)
.pipe(res);
}).listen(3000);
Sample HTML file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- inject:env -->
<script>window.__env = {};</script>
<!-- endinject -->
</head>
<body>
<!-- inject:fetch url=http://some.site.com/page timeout=5 assign=bob -->
<h1>Default Content</h1>
<p>This is what it looks like if the data doesn’t get fetched (or gets fetched with an error).</p>
<!-- endinject -->
</body>
</html>
options
name
- The name of the inejctor. This is the name you will use in your html document. Only slug-valid names are allowed (i.e. fetch
, custom-injector
, etc).Parse and inject a file. By default, the function returns a stream. You may also provide a callback and it will be called and return the parsed file contents. This method also has a streaming interface.
filepath
- The path to the file to parse and inject.Parse the given html file and return an object representation of the parseable blocks. This method also has a streaming interface.
filepath
- The path to the file to parse and inject.Injectors are used to put dynamic content into the html as static content. Injectors are basically plugins that exports a function:
module.exports = function (options, done) {
});
The injector function recieves 2 parameters:
options
- This is an object map of the options in the commented markup. If the html had <!-- inject:fetch url=http://some.site.com/page timeout=5 assign=bob -->
, the options would be
url: http://some.site.com/page
timeout: 5
assign: bob
done
- This callback gets called with these values - done(err, content)
. The content will be injected and replace the commented markupnpm install
npm test
FAQs
Inject dynamic resources into your html pages
The npm package deposit receives a total of 2 weekly downloads. As such, deposit popularity was classified as not popular.
We found that deposit demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.