HTML按钮到revbeal密码输入字段

时间:2017-05-04 12:19:50

标签: linux bash perl passwords

我有一个包含7列的表格。其中一个包含密码(pw)。

我不想在我的网站上显示密码:我想要某种"点击展开"在表格中显示它。

以下是包含该表的脚本的一部分:

...

push @certlist, {
    state     => $cert[0],
    'expire'  => $date,
    'subject' => $cert[5],
    'cn'      => $cn,
    'ip'      => $ccd_ips->{$cn},
    'dl'      => '',
    're'      => '',
    'pw'      => $password->{$cn}
};

...

return $q->table(
    { 'class' => 'certs' },
    $q->Tr(
        [
            $q->th(
                [   'Status', 'Common Name', 'D',         'Password',
                    'Date',   'Subject',     'IP-Adress', 'R'
                ]
            ) . "\n",
            map {
                  $q->td( { 'class' => $_->{'state'} }, $states{ $_->{'state'} } ) .
                  $q->td( [ @$_{qw(cn dl pw expire subject ip re)} ] ) . "\n"
            } @certlist
        ]
    )
) . "\n";

...

1 个答案:

答案 0 :(得分:3)

您应该只为包含密码的元素添加一个类,例如password-container。将初始内容设置为屏蔽。

那是:

push @certlist, {
    state     => $cert[0],
    'expire'  => $date,
    'subject' => $cert[5],
    'cn'      => $cn,
    'ip'      => $ccd_ips->{$cn},
    'dl'      => '',
    're'      => '',
    'pw'      => '*' x 8,
};

在页面中添加一些JavaScript,为处理切换的onclick类的所有元素添加password-container处理程序。

return $q->table(
    { 'class' => 'certs' },
    $q->Tr(
        [
            $q->th(
                [   'Status', 'Common Name', 'D',         'Password',
                    'Date',   'Subject',     'IP-Adress', 'R'
                ]
            ) . "\n",
            map {
                  $q->td( { 'class' => $_->{'state'} }, $states{ $_->{'state'} } ) .
                  $q->td( [ @$_{qw(cn dl)} ]) .
                  $q->td( { 'class' => 'password_container' }, $_->{pw} ) .
                  $q->td( [ @$_{qw(expire subject ip re)} ] ) . "\n"
            } @certlist
        ]
    )
) . "\n";

或一些类似的垃圾。

这再一次显示了使用CGI.pm生成HTML的价值。而是使用模板。这是对未来的建议,我假设您无法修复现有的代码库。

BTW,这是CGI.pm documentation的相关位:

  

不再维护CGI.pm中的所有HTML生成功能。任何问题,错误或补丁都将被拒绝,除非它们与基本破坏的页面呈现有关。

     

这个的基本原理是CGI.pm的HTML生成函数充其量是混淆,最糟糕的是维护噩梦。您应该使用模板引擎来更好地分离关注点。有关将CGI::AlternativesCGI.pm模块一起使用的示例,请参阅Template::Toolkit

     

这些函数及其perldoc被认为已弃用,不再维护它们,也不会接受它们的修复或功能。但是,它们将继续存在于CGI.pm中而没有任何弃用警告("软"弃用),因此如果您真的想要,可以继续使用它们。这些功能的所有文档都已移至CGI::HTML::Functions