3

尝试访问 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。这只是一个例子。)

4

2 回答 2

3

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

于 2011-03-15T02:21:25.903 回答
2

由于您的问题同时被标记为“ftp”和“security”,因此我只能建议您在需要任何安全性的情况下不要使用 ftp。使用 ssh 代替 telnet,使用 scp 代替 rcp,使用 sftp 代替 ftp。否则,尝试保护内存中的密码然后通过网络以明文形式发送它是毫无意义的。即使我当时不推荐使用 ftp,我也会理解在九十年代使用 ftp。但现在?我看不出任何借口。

于 2011-03-14T22:29:12.480 回答