gpt4 book ai didi

node.js - 在屏幕抓取应用程序中使用静态存储凭据的合理安全方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 23:25:21 27 4
gpt4 key购买 nike

借助 PhantomJS,CasperJS 允许您指定在应用程序启动时加载的 JSON 文件。我将我的凭据存储在这个文件中,这比将其硬编码在源文件中要好一些:

var json = require('testfile.json');

var username = json['username'];
var mykey = json['mykey'];

我的凭据仍然以纯文本形式存储在服务器上,我想远离它。此过程将自动进行,因此我无法在每次运行时通过命令行参数传递凭据,也不想将参数存储在 Windows 任务计划程序中。静态存储此信息的安全方法是什么?

最佳答案

使用此页面上列出的功能:http://lollyrock.com/articles/nodejs-encryption/

我能够根据自己的需要构建以下概念证明:

var crypto = require('crypto');

var algorithm = 'aes256';
var password = 'correcthorsestaplebattery';
var string = "Something I\'d like to encrypt, like maybe login credentials for a site I need to scrape.";

console.log('\n\nText: ' + string);

var encrypted = encrypt(new Buffer(string, "utf8"), algorithm, password);

console.log('\n\nEncrypted: ' + encrypted);

var decrypted = decrypt(encrypted, algorithm, password).toString('utf8');

console.log('\n\nDecrypted: ' + decrypted);

// check to prove 2-way encryption works
console.log('\n\nAre they the same before and after crypto? ');
console.log(decrypted == string);


function encrypt(buffer, algorithm, password){
var cipher = crypto.createCipher(algorithm,password)
var crypted = Buffer.concat([cipher.update(buffer),cipher.final()]);
return crypted;
}

function decrypt(buffer, algorithm, password){
var decipher = crypto.createDecipher(algorithm,password)
var dec = Buffer.concat([decipher.update(buffer) , decipher.final()]);
return dec;
}

这使用 AES256,它应该与双向加密一样安全,尽管我还不够先进,无法对实现发表评论。无论如何,它比纯文本好。

由此,您可以轻松地将输出写入文件而不是如图所示的控制台。只要您只是解析包含 JSON 的文件,您只需在解释之前添加解密步骤。

希望对您有所帮助。

关于node.js - 在屏幕抓取应用程序中使用静态存储凭据的合理安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21664522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com