网站根目录下有与INDEX.PHP并列的PRIVATE.PHP页面,我现在只允许它被客户端程序调用,不允许被用户手动进入(比如:http://127.0.0.0/private.php),怎么设置?

解决方案 »

  1.   

    我只想到一种方法,就是设置一个复杂的URL变量名:比如private.php?v=%^gr$5 然后用$_GET判断是不是规定的变量,不是的话就不允许进入……但这样也不能100%保证用户无法进入,虽然几率非常之低……
      

  2.   

    判断他的来源请求地址或获取上一次请求地址$_SERVER['HTTP_REFERER'];这个不行可以考虑用js实现
      

  3.   


    设SESSION吗?那不是无法判断是客户端还是用户进入……
      

  4.   

    最优的是$_SERVER['HTTP_REFERER'];做来源监测
    另一种是设定session权限鉴定,普通用户session进行跳转或返回404头
    可者是通过get或post一个参数来鉴权,对于不知规则的用户来说,突破也很困难
      

  5.   

    不一定要用session啊
    你在PRIVATE。php 也是设定一个变量
    例如 
    if($flag == '值')
    ...
    else
    exit;...你客户端调用的时候传这个值到这个页面获取它的值这个值你可以自己设定
      

  6.   

    1.客户端安装后,生成自己的公私钥,通过HTTPS保护自定义协议将GUID和公钥提交上去。2,今后客户端连接服务端,首先使用私钥加密GUID,然后同GUID一起提交,服务端根据GUID选择对应的公钥解密验证GUID成功则认为客户端正常以便下发用于SESSION的COOKIE。其实关键就2点:1,客户端安装后初次HTTPS连服务端,如果认为服务器可能欺诈则客户端可以要求CA验证服务端发来的证书,否则可以直接信任服务端证书,并通过公私钥加密交换对称密钥完成客户度公私钥的提交。2,其实就是HTTPS保护下完成信任关系的配置,玩过SCP/SSH的同学应该有数。