Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
accounts-api
Advanced tools
An accounts api that follows a few contraints to try and make it easy to plug into a node http server
This app follows a few constraints to try and make it easy to plug into a node http server.
The goal is a simple API resource that can be used on its own or in other servers.
The file organization and approach is inspired in part by django's idea of apps.
To use it, you'd include it in the server like this:
var http = require('http')
var response = require('response')
var levelup = require('levelup')
var db = levelup('db', { db: require('memdown') })
var server = http.createServer(function (req, res) {
/*
* if req.url matches a route, it will return,
* otherwise, another part of the application can respond
*/
this.db = db
var accounts = requires('accounts-api')(this)
if (accounts.serve(req, res)) return
response().json({ message: 'hi' }).pipe(res)
})
server.listen(4444)
By default, there are three roles an account can have: admin, owner, collaborator
admin
owner
collaborator
Here's how you might check to see if a user is the owner of a model:
var access = auth.checkRoles(obj.key, account)
if (access && access.role === 'owner') {
// do the things that owners can do
}
Scopes are granular permissions for models or other arbitrary actions in your application.
By default there is an accounts
scope, and all users are allowed to read
accounts.
Here's an example of adding a custom posts
scope to accounts so you can check if an account has the proper scope in other parts of your application:
var createAccounts = require('accounts-api')({
secret: 'test',
scopes: {
posts: {
type: 'object',
properties: {
actions: {
type: 'array',
items: { type: 'string', enum: ['create', 'read', 'update', 'delete'] }
}
},
default: { actions: ['create', 'read'] }
}
}
})
var accounts = createAccounts({ db: memdb() })
To check if an account has the proper scope:
auth.checkScopes(['read:posts', 'create:posts'], account)
serve
method that is used to match req.url to the app's routesFAQs
An accounts api that follows a few contraints to try and make it easy to plug into a node http server
The npm package accounts-api receives a total of 7 weekly downloads. As such, accounts-api popularity was classified as not popular.
We found that accounts-api 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
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.