使用python selenium在文本框中安全​​地输入密码

时间:2016-11-03 06:58:41

标签: python selenium authentication encryption passwords

问题:

有没有办法使用python selenium安全地将密码发送/输入文本框?加密,基本身份验证标头等?

示例(不安全):

driver = webdriver.Chrome()
Pass = WebDriverWait(driver, timeout_time).until(
    lambda driver : driver.find_element_by_id('Pass'))
Pass.send_keys(password)

说明

问题在于,密码以纯文本形式写入stdoutstderr。任何抓住您的日志文件的人都可以验证您的帐户。我可以将stdoutstderr发送给/dev/null,但必须有更好的方法吗?

此外,如果将password写入文件,那么有人可能会截取您的请求并轻松获取您的详细信息吗?

1 个答案:

答案 0 :(得分:1)

我认为没有这样的方法。 Selenium的目的是自动化测试。如果您需要通过send_keys方法提供密码,您的密码将在某些时候可读。 从python的角度来看,你可以使用64位编码:

>>> import base64
>>> print base64.b64encode("password")
cGFzc3dvcmQ=
>>>  print base64.b64decode("cGFzc3dvcmQ=")
password

使用此解决方案,您的密码不会直接写入代码中,但可以轻松解码。该技术不安全,因为64位编码易于识别(即'='字符)。

另一个想法是在单独的python文件中编写密码并进行编译。你会得到一个“toto.pyc”文件,因为它只是编译后的字节码,所以人类无法读取。在您的真实脚本中,您必须导入此模​​块,然后您将访问刚刚放置的密码变量。

如前所述,它不会完全安全,因为密码在某些时候是可读的。