
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
als-captcha
Advanced tools
als-captcha
is a Node.js library for generating and validating a simple yet effective captcha. It employs a combination of image recognition with noise and tilt, basic math problem solving, and several other strategies to differentiate between human users and bots.
To install als-captcha
, use npm:
npm i als-captcha
const Captcha = require('als-captcha');
const captcha = new Captcha() // dafult params and eng language for audio
// create captcha
app.get('/captcha', async (req, res) => {
const captchaHtml = await captcha.create(req,res,true) // last parameter include audio
res.send(`<!DOCTYPE html>
<html lang="en">
<head>
<title>HEllo</title>
</head>
<body>
<form>
${captchaHtml}
</form>
<body>
</html>
`);
});
// validate captcha
app.post('/submit-captcha', (req, res) => {
if (catpcha.valid(req)) res.send("right");
else res.send("wrong");
});
als-captcha
uses multiple strategies to enhance security:
importantInfo
Field: Remains empty and is used to detect bots that might fill it.onchange
Event: If the onchange
event does not trigger, the bot
field retains its default value, indicating a bot.Configuration includes 3 parts:
params
(Object) - the parameters for captcha class
lang
(String) - the language for audio
'eng'
, available: eng
,ru
,he
cookieOptions
(Object) - options for cookie
prefix
(String): Optional. A prefix for cookie names with encrypted values. Default is 's:'.cryptOptions
(Object): Optional. An object for initiating encryption.
The parameters includes:
logger
(Function): function for logging errors. Default console.log
maxAge
(Number): captcha life time (after this time, captcha outdated). Default is 10 minutesfilePath
(String): The place for saving captcha tokens start. Default join(__dirname, 'captcha-start')
Example for custom cofiguration:
const logs = []
const captcha = new Captcha({
logger:(...e) => logs.push(e),
maxAge:1000*60*30,
filePath:'./captcha-start'
})
lang
The Captcha class using als-math-audio-composer
for composing audio for captcha.
By default the language is english (eng).
At the moment, available languages are:
eng
- englishru
- russianhe
- hebrewals-math-audio-composer
using sync method to read the files and than caching it.
You can cache all needed sounds on init like this:
const captcha = new Captcha({},'ru') // Set Russian as the captcha language
captcha.audioComposer.cacheAll() // Optionally pre-cache all audio files for faster response
The Captcha using crypted cookies for storing token and captcha result. By default cookies sent with the folowing options:
{
path: '/',
secure: true,
httpOnly: true,
maxAge:60*10,
sameSite:'lax'
}
The configuraton builded with als-cookie-options
and you can change it.
Here is the example how to change:
const captcha = new Captcha()
captcha.cookieOptions.sameSite = 'strict'
FAQs
Advanced CAPTCHA library
The npm package als-captcha receives a total of 4 weekly downloads. As such, als-captcha popularity was classified as not popular.
We found that als-captcha 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.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.