BulletTime
V2EX  ›  PHP

在VPS里如何实现php能调用但不公开访问?

  •  
  •   BulletTime · Feb 4, 2014 · 5227 views
    This topic created in 4661 days ago, the information mentioned may be changed or developed.
    刚买了个VPS,环境是centos + lnmp,有一些文件php要调用,但这些文件比较敏感,不希望放在公开目录中。

    用/root/vhost.sh建立的网站,绑定的整个目录都是公开的,把文件放到这个目录外面php又调用不到(貌似属于跨站了)。

    请教如何做才能既做到文件与外界隔离的同时又能够被php调用呢?
    12 replies  •  1970-01-01 08:00:00 +08:00
    icloudnet
    icloudnet
    Feb 4, 2014 via iPad
    1
    slixurd
    slixurd
    Feb 4, 2014
    2
    设置一下文件权限?
    ritksm
    ritksm
    Feb 4, 2014
    3
    在nginx上把敏感目录的location直接return 403好了...
    Part
    Part
    Feb 4, 2014
    4
    所谓的“调用”是include? include 可以任意目录的。

    通常的做法是
    a.php
    !defined('INNER') && exit('Access Denied');

    b.php
    define('INNER', true);
    include('a.php');
    wdkwdkwdk
    wdkwdkwdk
    Feb 4, 2014
    5
    ajax 设置Access-Control-Allow-Origin
    BulletTime
    BulletTime
    OP
    Feb 4, 2014
    6
    @icloudnet
    @slixurd
    @ritksm
    @Part
    @wdkwdkwdk

    敏感文件不一定是php文件,以前用虚拟主机的时候根目录下有一堆目录,只有home或者www才能公开访问,但可以file_get_contents之类的读取上级不公开目录的文件,就是想实现这种效果
    Sunyanzi
    Sunyanzi
    Feb 4, 2014
    7
    随便创建别的一个什么目录 ...

    比如你的网站根是 /var/www ... 那么在这个目录之外的所有区域都是 web 不可见的 ...

    你可以创建 /var/private ... 然后 chmod 这个目录使得 php 可读 ...

    这时候就可以通过在脚本里写 file_get_contents( '/var/private/foo.bar' ); 取得文件内容了 ...
    mogita
    mogita
    Feb 4, 2014
    8
    if (!isset($argv)) die();
    vibbow
    vibbow
    Feb 4, 2014
    9
    @ck65 if (PHP_SAPI === 'cli')
    oott123
    oott123
    Feb 4, 2014 via Android
    10
    把网站放到./www/wwwroot里,open_base_dir限制到./www里不就好了
    不过最好还是3楼的方案~
    wdlth
    wdlth
    Feb 5, 2014
    11
    可以在Nginx或者PHP代码设置一些认证,比如最简单的Basic Auth。
    lyragosa
    lyragosa
    Feb 24, 2014
    12
    设置某个文件夹的htaccess(我用的apache,nginx应该也有类似的),为Deny from all

    这样 web访问这个文件夹的内容会被403,但是不影响include,也不影响在shell下执行 /usr/bin/php 来直接用解析器访问。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2102 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 05:06 · PVG 13:06 · LAX 21:06 · JFK 00:06
    ♥ Do have faith in what you're doing.