接口是这样调用的$this->file_get_content("http://127.0.0.40/api.php?goods_id=XXXX");接口的文件就是print_R了一些数组想使用我接口的人,要我审核域名才能使用我网上查了一些方法,如下面的
$parse_url=parse_url($_SERVER[HTTP_REFERER]);
$url_from=$parse_url[host]; 
这个可以获得来源网址,但是要通过超链接点击,才能获取,file_get_content这样好是不能使用的请高手,指点下,分享下思路方法,谢谢!QQ:614944530

解决方案 »

  1.   

    本帖最后由 PhpNewnew 于 2012-05-29 17:42:25 编辑
      

  2.   

    验证ip吧   HTTP_REFERER都可以伪造的
      

  3.   

    file_get_content这个不太靠谱,用curl或者fsocketopen吧
      

  4.   

    ip 也是可以伪造的!最好的办法是双方约定验证一个sign,然后sign里面的数据是你们约定的那些需要加密的数据,验证后才通过!
      

  5.   

    $this->file_get_content
    如果这是在执行你的服务器上的方法,那么既然能执行,自然就已经有了权限
    如果这是执行他自己的代码,也就是你的服务。你把接口都提供给人家了,还说每日权限吗?
      

  6.   

    1. file_get_content是可以加上header的,当然也可以加HTTP_REFERER
    2. HTTP_REFERER是不可靠的
      

  7.   


    你好 是这样的 api是一个采集接口 我给了一个插件给付费用户使用 插件要调用到采集接口 才能正常使用我想通过这个接口来区分免费用户 和 付费用户的使用权限 考虑过代码加密 但是不可靠 
      

  8.   

    设置一个ip-ticket的key-value对,然后发布给用户,这样就只能从指定的ip,用指定的ticket来访问了呗...
    要么就学google,完全没限制,只限制每日访问次数...哈哈
      

  9.   

    难道你的API服务程序也给用户了?或都说他也有权访问?
    如果真是这样,还有必要搞什么API吗?这不是脱裤子放屁么!
      

  10.   

    现在的问题就是需要传递一些用户无法修改的参数给api 验证用户信息
      

  11.   

    这个是一个开源系统的插件  我写了个采集api 来验证购买过我插件的客户
    让他们使用采集api实现的功能就是采集整理即将导入的数据插件利用这些数据 导入 开源系统的数据库
      

  12.   


    这个是一个开源系统的插件 我写了个采集api 来验证购买过我插件的客户
    让他们使用采集api实现的功能就是采集整理即将导入的数据插件利用这些数据 导入 开源系统的数据库