PHP不同的服务器和安全性

PHP不同的服务器和安全性,php,mysql,Php,Mysql,我目前有几个服务器,主要是一个web服务器和一个内部存储服务器。数据存储在SQL server数据库中 在不给用户太多访问权限的情况下,如何从存储服务器中提取特定文档以从web服务器显示给用户 例如,我在存储服务器上有文档c:/memberID/info.pdf,我想通过PHP向客户机显示它,而不让他们访问内部存储服务器 我希望这是有意义的 查看readfile以及标题 <?php $file = 'monkey.gif'; if (file_exists($file)) { h

我目前有几个服务器,主要是一个web服务器和一个内部存储服务器。数据存储在SQL server数据库中

在不给用户太多访问权限的情况下,如何从存储服务器中提取特定文档以从web服务器显示给用户

例如,我在存储服务器上有文档c:/memberID/info.pdf,我想通过PHP向客户机显示它,而不让他们访问内部存储服务器


我希望这是有意义的

查看
readfile
以及
标题

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

查看
readfile
以及
标题

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>


仅当存储服务器安装在Web服务器上或文件通过http私人可用时,此操作才有效。我可以通过\\server从Web服务器访问存储服务器。我的文件以\\server\memberno.pdf格式存储在数据库中-我想将链接显示为“document.pdf”。如何实现此目的?只需更改变量
$file
,以包含要提供服务的文件的路径:
$file='\\server\memberno.pdf'
(确保在必要时适当转义)。tftd,我知道它只适用于可访问的文件,但据我所知,这些文件可以从web服务器访问OK,所以我已经设法解决了大部分问题。接下来我要讨论的是,如何在不通过$u请求传递文件路径的情况下,将其转换为链接中的锚定标记?这将是一个新问题。但我建议使用
散列
、路径为的
文件创建一个数据库,并在URL中传递散列。这仅在存储服务器安装在Web服务器上或文件通过http私人可用时才起作用。我可以通过\\server从Web服务器访问存储服务器。我的文件以\\server\memberno.pdf格式存储在数据库中-我想将链接显示为“document.pdf”。如何实现此目的?只需更改变量
$file
,以包含要提供服务的文件的路径:
$file='\\server\memberno.pdf'
(确保在必要时适当转义)。tftd,我知道它只适用于可访问的文件,但据我所知,这些文件可以从web服务器访问OK,所以我已经设法解决了大部分问题。接下来我要讨论的是,如何在不通过$u请求传递文件路径的情况下,将其转换为链接中的锚定标记?这将是一个新问题。但是我建议用
散列
创建一个数据库,用路径
创建一个
文件,然后将散列传递到URL中