我添加了VirtualHost ServerAdmin root @ localhost DocumentRoot /var/www/html/blogovet.ru ServerName www.blogovet.ru ServerAlias blogovet.ru
但我在这个域中的脚本可以看到所有服务器文件/ *不仅在他的目录/var/www/html/blogovet.ru
如何禁止查看除DocumentRoot以外的文件?
答案 0 :(得分:0)
脚本将能够读取运行脚本的用户可以读取的所有文件。因此,您应该确保您的Web服务器不以root身份运行(需要以root用户身份启动才能侦听端口80,但是应该将用户转换为例如“www”本身),然后确保该用户无法读取任何明智的文件。
您还可以使用SElinux获得额外的安全保障。
答案 1 :(得分:0)
我找到了PHP的这个解决方案(如果禁用cgi和ssi,看起来不错)
<VirtualHost *:80>
ServerAdmin root@localhost
DocumentRoot /var/www/html/site.com
ServerName www.site.com
ServerAlias site.com
ErrorLog /var/www/html/site.com/error-log
# TransferLog /var/www/html/site.com/transfer-log
# CustomLog /var/www/html/site.com/access-log common
<IfModule mod_php5.c>
php_admin_value upload_tmp_dir "/tmp"
php_admin_value include_path ".:/usr/share/pear:/usr/share/php:/var/www/html/site.com"
php_admin_value open_basedir "/var/www/html/site.com"
php_admin_value doc_root "/var/www/html/site.com"
</IfModule>
<Directory "/var/www/html/site.com">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>