当我使用sikuli输入密码时如何防止窗口切换

时间:2018-04-13 08:20:52

标签: java security authentication automation sikuli

我正在编写一个sikuli脚本来启动putty并登录到远程UNIX服务器。当客户端询问时,Sikuli会自动输入登录名和密码。现在有可能,当sikuli输入密码时,有人可能会触发窗口切换,使用Alt + Tab或鼠标单击打开记事本(或任何其他编辑器)并窃取密码。由于我们无法向用户透露密码,因此我们使用此脚本执行SSO。 我们尝试了各种选项,例如逐字符输入密码和在每一步触发窗口检查,但仍有可能出现密码泄露。 有什么方法可以锁定putty窗口或禁用app切换? 还有其他工具可以实现吗?或者我们有什么方法可以使用JAVA + Sikuli处理它(使用一些API或使用Sikuli和Java的其他工具)。

1 个答案:

答案 0 :(得分:0)

我曾经使用Putty做过类似的事情,也输入了密码。

选项1

一种选择是将密码复制到剪贴板中,然后在Putty屏幕内单击鼠标右键(因为右键单击putty屏幕粘贴保存在剪贴板中的文本)。据我所知,没有办法通过sikuli脚本在剪贴板上写,但你可以用Java来做。您已设置剪贴板,可以使用以下命令访问剪贴板:

putty = App.open("path/to/putty.exe")
putty.focus()
password = Env.getClipboard()
rightClick("putty_window.png")

App类的文档为Here

Here是通过java设置剪贴板的示例:

// Libraries to set clipboard
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Clipboard;

public class tester{

 public static void main(String[] args){

     // from string to clipboard
    StringSelection selection = new StringSelection("hi");
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    clipboard.setContents(selection, selection);
 }
}

选项2

创建一个bat文件,其中包含此link的内容,并使用putty自动登录。之后,使用 Bat to exe转换器将你的球棒转换为exe,这是link的第二个答案。