javascript – 在安装时在Greasemonkey脚本中存储用户登录/密码输入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在安装时在Greasemonkey脚本中存储用户登录/密码输入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2890字,纯文字阅读大概需要5分钟。
内容图文
![javascript – 在安装时在Greasemonkey脚本中存储用户登录/密码输入](/upload/InfoBanner/zyjiaocheng/715/2149f1e881f0416394a85bc258be3074.jpg)
我正在做一个Greasemonkey脚本,它通过REST API与Redmine票证管理器进行通信.
由于用户需要登录才能从Redmine获取数据,我需要一种方法在脚本安装时询问用户的凭据并将其保存到脚本中.
这可以在不要求用户直接在脚本中编辑值的情况下实现吗?
编辑:
由于已经有了这个问题的答案,我将验证下面给出的答案,因为它是一个非常好的框架.
解决方法:
这是一个获取和存储登录凭据的框架.?脚本在第一次运行时提示输入信息,并使用GM_setValue()对其进行加密存储.
它还向Greasemonkey上下文菜单添加了两个项目,以允许更改用户名或密码.
// ==UserScript==
// @name _Autologin, sensitive info framework
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require http://crypto.stanford.edu/sjcl/sjcl.js
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_registerMenuCommand
// ==/UserScript==
var encKey = GM_getValue ("encKey", "");
var usr = GM_getValue ("lognUsr", "");
var pword = GM_getValue ("lognPwd", "");
if ( ! encKey) {
encKey = prompt (
'Script key not set for ' + location.hostname + '. Please enter a random string:',
''
);
GM_setValue ("encKey", encKey);
usr = pword = ""; // New key makes prev stored values (if any) unable to decode.
}
usr = decodeOrPrompt (usr, "U-name", "lognUsr");
pword = decodeOrPrompt (pword, "P-word", "lognPwd");
function decodeOrPrompt (targVar, userPrompt, setValVarName) {
if (targVar) {
targVar = unStoreAndDecrypt (targVar);
}
else {
targVar = prompt (
userPrompt + ' not set for ' + location.hostname + '. Please enter it now:',
''
);
GM_setValue (setValVarName, encryptAndStore (targVar) );
}
return targVar;
}
function encryptAndStore (clearText) {
return JSON.stringify (sjcl.encrypt (encKey, clearText) );
}
function unStoreAndDecrypt (jsonObj) {
return sjcl.decrypt (encKey, JSON.parse (jsonObj) );
}
//-- Add menu commands that will allow U and P to be changed.
GM_registerMenuCommand ("Change Username", changeUsername);
GM_registerMenuCommand ("Change Password", changePassword);
function changeUsername () {
promptAndChangeStoredValue (usr, "U-name", "lognUsr");
}
function changePassword () {
promptAndChangeStoredValue (pword, "P-word", "lognPwd");
}
function promptAndChangeStoredValue (targVar, userPrompt, setValVarName) {
targVar = prompt (
'Change ' + userPrompt + ' for ' + location.hostname + ':',
targVar
);
GM_setValue (setValVarName, encryptAndStore (targVar) );
}
// ADD YOUR CODE TO SET THE USERNAME AND PASSWORD ON THE LOGIN PAGE, HERE.
?重要:
>使用用户脚本登录始终存在风险.
>这个框架大大降低了这种风险,但Greasemonkey和Tampermonkey可用的存储机制并不安全,浏览器供应商CYA against storing confidential information.如果坏人同时获得了您的用户名和浏览器数据,那么他可以对您的密码进行反向工程.当然,如果他有这个,他最有可能是你的一台机器.
>聪明的事情是使用像LastPass,KeePass等密码管理器.
>绝对最糟糕的事情是将凭证存储在用户脚本中.即使是客人也可以看到他们然后你会被“黑客攻击”,保证.
内容总结
以上是互联网集市为您收集整理的javascript – 在安装时在Greasemonkey脚本中存储用户登录/密码输入全部内容,希望文章能够帮你解决javascript – 在安装时在Greasemonkey脚本中存储用户登录/密码输入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。