我正在尝试让OpenDLP在我的系统上工作。对于那些不熟悉这一点的人,只需将其视为perl网站即可。
我基本上准备好了所有的东西,除了UI会给出错误。
经过一些挖掘和调试,我发现我的Perl脚本运行在'/‘目录下!当页面尝试读取'../etc/db_admin‘时,它们将找不到它并抛出错误。
此ui的vhost配置:
<VirtualHost opendlp.local:443>
ServerAdmin vahid.fazl2000@engineer.com
DocumentRoot "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin"
ServerName opendlp.local:443
ErrorLog "/var/log/httpd/opendlp-error_log"
CustomLog "/var/log/httpd/opendlp-access_log" common
Include conf/extra/httpd-opendlp.conf
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin">
AddHandler perl-script .pl .html
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
AllowOverride All
Options All
Require method GET POST OPTIONS
</Directory>
</VirtualHost>这是httpd.opendlp.conf
Alias /OpenDLP/images/ /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/images
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/images/">
Options FollowSymLinks
AllowOverride None
order allow,deny
allow from all
#AuthType Basic
#AuthName "OpenDLP"
#AuthUserFile /etc/apache2/.htpasswd.dlp.user
#Require user dlpuser
</Directory>
ScriptAlias /OpenDLP/ "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/"
ScriptAlias /cgi-bin/ "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/"
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/results/">
Options FollowSymLinks
AllowOverride None
order allow,deny
allow from all
#AuthType Basic
#AuthName "OpenDLP"
#AuthUserFile /etc/apache2/.htpasswd.dlp.agent
#Require user ddt
</Directory>
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/">
Options FollowSymLinks
AllowOverride None
order allow,deny
allow from all
#AuthType Basic
#AuthName "OpenDLP"
#AuthUserFile /etc/apache2/.htpasswd.dlp.user
#Require user dlpuser
</Directory>
#Also add this stuff to the Apache config file:
# taken from http://hausheer.osola.com/docs/9
SSLEngine on
#SSLVerifyClient require
SSLCertificateFile /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/server.crt
SSLCertificateKeyFile /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/server.key
SSLCACertificateFile /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/server.crt我以前没有尝试过Perl for web,我也不熟悉mod_perl和它的选项。我已经在谷歌上搜索过了,但我似乎不知道去哪里找(当然,除了这里:-)
顺便说一句,如果重要的话,我在使用Arch Linux x64。
提前感谢
编辑:这里有一些关于错误的更多信息。这是我访问https://opendlp.local/profiles-manage.html时得到的错误
No such file or directory at /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/profiles-manage.html line 29.下面是文件的第29行(及其周围):
use CGI qw/:standard/;
use DBI;
use Cwd qw();
my $version = get_version();
my $db_admin_file = "../etc/db_admin";
my( $db_username, $db_password ) = "";
open( DB, $db_admin_file ) or die $!; # LINE 29
my $db_line = <DB>;
close( DB );
chomp $db_line;
($db_username, $db_password) = split( ":", $db_line );
header();
print "<heading>Manage existing scan profiles</heading><normal><br><br>\n";我自己添加了use Cwd (实际上是谷歌搜索的),并检查了工作目录,即/。
发布于 2014-10-12 01:46:47
将DocumentRoot更改为
/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web
而不是
/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin“
然后在你的脚本中:
my $db_admin_file = "etc/db_admin";您会出现“找不到文件”错误,因为您的代码运行在一个虚拟主机上,其中您设置为文档根目录的目录被视为根目录(/)。你不能“走到”根目录后面,
https://stackoverflow.com/questions/26317049
复制相似问题