Какой самый безопасный способ сохранить пароль для просмотра веб-страниц с помощью Puppeteer? - PullRequest
1 голос
/ 17 марта 2020

Я пытаюсь очистить веб-сайт, который требует входа в систему. Приведенный ниже фрагмент кода работает путем сохранения имени пользователя и пароля в файле конфигурации JSON. Если кто-то получит доступ к файлу конфигурации, информация для входа будет просочена. Есть ли лучший способ повысить безопасность, скажем, зашифровав имя пользователя и пароль? Заранее спасибо!

await page.goto("https://www.facebook.com/", { waitUntil: "networkidle0" });
await page.type("#email", config.username, { delay: 30 });
await page.type("#pass", config.password, { delay: 30 });

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Вариант 1: JWT

Вы можете использовать что-то вроде Json Web Token для шифрования данных (и их сохранения). «Проблема» с JWT заключается в том, что вам нужен токен для шифрования / дешифрования данных, и этот токен должен находиться в безопасном месте (вы, возможно, не возражаете). Таким образом, каждый раз, когда вы запускаете сервер, вам нужно дать ему токен.

// Encrypt
let data = {username: 'ciro-gomes', password: 'Dá bilhão?'};
var encrypted = jwt.sign(data, 'my random token');
// Store encrypted data
// Decrypt
var data = jwt.verify(encrypted, 'my random token');
// data = {username: 'ciro-gomes', password: 'Dá bilhão?'}

Вариант 2: Использовать токены, предоставленные веб-сайтом

Обычно после входа на сайт выдается несколько файлов cookie, которые используются для аутентификации пользователя при следующем доступе (без запроса пароля). Вы должны хранить эти куки и, при необходимости, восстанавливать их в Puppeteer.
Конечно, кто-то может использовать эти данные для доступа к сайту, но это проблема сайта. Обычно, когда пользователь пытается получить доступ к важным материалам, веб-сайт запрашивает пароль для безопасности.

0 голосов
/ 17 марта 2020

Сам факт того, что вы храните пароль локально и отправляете его позже, означает, что вы либо предполагаете, что машина, на которой он выполняется, «на 100% безопасны» (или достаточно безопасны для ваших целей), либо вы не не волнует этот пароль. Шифрование файла конфигурации будет работать только в том случае, если вы зашифруете его с помощью чего-то, что не хранится на этом компьютере, но вам придется предоставлять это каждый раз, когда вы запускаете этот сценарий.

Вы, очевидно, можете запутать это так или иначе, но это никогда не будет в безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...