我添加了VirtualHost ServerAdmin root @ localhost DocumentRoot /var/www/html/blogovet.ru ServerName www.blogovet.ru ServerAlias blogovet.ru
但我在这个域中的脚本可以看到所有服务器文件/ *不仅在他的目录/var/www/html/blogovet.ru
如何禁止查看除DocumentRoot之外的文件?
脚本将能够读取运行脚本的用户可以读取的所有文件 . 所以你应该确保你的web服务器不以root身份运行(它需要以root身份启动才能侦听端口80,但是应该将用户转换为例如“www”本身),然后确保该用户无法读取任何明智的文件 .
您还可以使用SElinux获得额外的安全保护 .
我找到了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>
2 回答
脚本将能够读取运行脚本的用户可以读取的所有文件 . 所以你应该确保你的web服务器不以root身份运行(它需要以root身份启动才能侦听端口80,但是应该将用户转换为例如“www”本身),然后确保该用户无法读取任何明智的文件 .
您还可以使用SElinux获得额外的安全保护 .
我找到了PHP的这个解决方案(如果禁用cgi和ssi,看起来不错)