
Security News
Socket Releases Free Certified Patches for Critical vm2 Sandbox Escape
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.
vivaldi-cookies-secure
Advanced tools
Extract encrypted Vivaldi cookies for a url on Mac OS X, Windows, or Linux
npm install vivaldi-cookies-secure
url should be a fully qualified url, e.g. https://www.example.com/path
format is optional and can be one of the following values:
| format | description |
|---|---|
| curl | Netscape HTTP Cookie File contents usable by curl and wget |
| jar | cookie jar compatible with request |
| set-cookie | Array of Set-Cookie header values |
| header | cookie header string, similar to what a browser would send |
| puppeteer | an array of objects that can be loaded into puppeteer using the setCookie(...) method |
| object | (default) Object where key is the cookie name and value is the cookie value. These are written in order so it's possible that duplicate cookie names will be overriden by later values |
If format is not specified, object will be used as the format by default.
Cookie order tries to follow RFC 6265 - Section 5.4, step 2 as best as possible.
const vivaldi = require('vivaldi-cookies-secure');
vivaldi.getCookies('https://www.example.com/path/', function(err, cookies) {
console.log(cookies);
});
const request = require('request');
const vivaldi = require('vivaldi-cookies-secure');
vivaldi.getCookies('https://www.example.com/', 'jar', function(err, jar) {
request({url: 'https://www.example.com/', jar: jar}, function (err, response, body) {
console.log(body);
});
});
const vivaldi = require('vivaldi-cookies-secure');
const puppeteer = require('puppeteer');
const url = 'https://www.yourUrl.com/';
const getCookies = (callback) => {
vivaldi.getCookies(url, 'puppeteer', function(err, cookies) {
if (err) {
console.log(err, 'error');
return
}
console.log(cookies, 'cookies');
callback(cookies);
}, 'yourProfile') // e.g. 'Profile 2'
}
getCookies(async (cookies) => {
const browser = await puppeteer.launch({
headless: false
});
const page = await browser.newPage();
await page.setCookie(...cookies);
await page.goto(url);
await page.waitFor(1000);
browser.close();
});
On OS X, this module requires Keychain Access to read the Vivaldi encryption key. The first time you use it, it will popup this dialog:

The SQLite database that Vivaldi stores its cookies is only persisted to every 30 seconds or so, so this can explain while you'll see a delay between which cookies your browser has access to and this module.
This software is free to use under the MIT license. See the LICENSE file for license text and copyright information.
FAQs
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
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.

Research
Five malicious NuGet packages impersonate Chinese .NET libraries to deploy a stealer targeting browser credentials, crypto wallets, SSH keys, and local files.

Security News
pnpm 11 turns on a 1-day Minimum Release Age and blocks exotic subdeps by default, adding safeguards against fast-moving supply chain attacks.