【问题标题】:Can I safely store passwords inside the source of a CGI script?我可以在 CGI 脚本的源代码中安全地存储密码吗?
【发布时间】:2012-05-30 04:07:35
【问题描述】:

我在Email::Send::SMTP::Gmail 的帮助下通过Gmail 使用Perl 发送电子邮件。该脚本存储为send.pl。我正在通过localhost/send.pl 访问它。我必须在这个 Perl 脚本中输入我的 Gmail 帐户密码,然后从我的浏览器访问它。

浏览此网站的任何人都可以通过任何方式获取我的 Gmail 密码吗?

我的代码:

use strict;
use warnings;
use Email::Send::SMTP::Gmail;
my $mail = Email::Send::SMTP::Gmail->new(
    -smtp  => 'gmail.com',
    -login => 'whateveraddress@gmail.com',
    -pass  => 'whatever_pass'
);
$mail->send(
    -to          => 'target@xxx.com',
    -subject     => 'Hello!',
    -charset     => 'KOI8-R',
    -verbose     => '1',
    -body        => 'Just testing it',
    -attachments => 'full_path_to_file'
);
$mail->bye;

【问题讨论】:

  • 将密码以纯文本形式保存在 Internet 上可读的文件中似乎是一个非常糟糕的解决方案。
  • user1092042,我看到您在问题中添加了新代码,将其变成了一个完全不同的主题。请不要这样做,Stack Overflow 上的每个主题都必须独立存在,否则该站点将无法正常运行。我已将问题恢复为以前的问题。您的文字仍然存在于stackoverflow.com/revisions/10796356/4 - 请复制此文字和open a new question。

标签: perl


【解决方案1】:

只要服务器保持正确配置,不,您的密码是安全的。

但是,最好将密码保存在站点根目录之外的配置文件中,然后从脚本中读取它,而不是将其嵌入到脚本本身中。这样,如果更改了服务器配置并开始提供原始脚本而不是执行它,您的密码仍然是安全的。

【讨论】:

  • 知道如何从配置文件中读取密码。是否有任何教程解释如何执行此操作。
  • 使用Config::Any 或其依赖项中列出的配置模块之一。
  • 我目前正在使用我的问题中更新的代码。但是它只是打印一个数组引用而不是密码本身。请看看我编辑的问题
猜你喜欢
  • 2017-03-23
  • 2011-05-18
  • 2013-06-02
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
相关资源
最近更新 更多