powershell和secureString类

时间:2011-03-14 21:05:30

标签: security powershell ftp securestring

尝试访问FTP站点,我可以在凭证中使用纯文本密码,它可以正常工作,但是当我使用SecureString时,它无法进行身份验证。例子:

$pw = "mypw"
$ftp = [system.net.ftpwebrequest] [system.net.webrequest]::create("ftp:myserver")
$ftp.Credentials  = new-object system.net.networkcredential("myuid", $pw)

工作正常。但以下失败

$pw = "mypw"
$ftp = [system.net.ftpwebrequest] [system.net.webrequest]::create("ftp:myserver")
$ss = convertto-securestring -asplaintext -force $pw
$ftp.Credentials  = new-object system.net.networkcredential("myuid", $ss)

但是无法验证。我误解了什么?

(顺便说一句,我知道我不想在我的剧本中使用明文pw。这只是一个例子。)

2 个答案:

答案 0 :(得分:3)

这是因为除非使用安全FTP,否则FTP无法处理纯文本用户名和密码以外的任何内容。这里有些混乱吗?

答案 1 :(得分:2)

由于你的问题被标记为“ftp”和“security”,我只能建议你永远不要使用ftp,如果你想要任何安全性的话。使用ssh而不是telnet,使用scp而不是rcp,使用sftp而不是ftp。否则尝试保护内存中的密码然后通过网络以明文形式发送它是没有意义的。我会理解在九十年代使用ftp,即使我当时不推荐它。但现在?我没有理由找借口。