Javascript用户名密码用户系统与代理

时间:2014-10-29 16:23:09

标签: javascript php proxy

某些服务网址需要用户名密码参数才能获得安全保护。在这个结构中,我们建议在服务器上使用代理脚本。不要在javascript应用程序中使用用户名密码对。例如,我有一个为我指定的服务,如下所示:

http://service.com/service?request=get&category=products&username=some&password=123456

这项服务不会给我带有用户名密码对的产品。

我应该用PHP,Aspx,Java等创建一个代理页面。我用PHP创建了一个代理。

http://localhost/my/proxy.php

    $url = "http://service.com/service?request=get&category=products&username=some&password=123456";
    $ch = curl_init();

    curl_setopt($ch,CURLOPT_URL, $url);

    $result = curl_exec($ch);

现在我可以在我的javascript代码中使用http://localhost/my/proxy.php了。但每个人都可以向我的代理发送请求并获取我的产品。这是一个问题。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  1. 仅允许对网址的POST请求

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      // code
    }
    
  2. 为受信任的用户提供令牌(包含Cookie),并在提供服务之前检查令牌

    //setting the token
    setcookie(name, value, expire, path, domain);  
    
    //authentication
    if (isset($_COOKIE[$cookie_name]) && $_COOKIE[$cookie_name] == $token){ 
      // code
    }
    
  3. 使用会话而不是Cookie

    //starting session mechanism
    session_start();
    
    //setting session
    $_SESSION['token'] = $token;
    
    //authentication
    if (isset($_SESSION['token']) && $_SESSION['token'] == $token){ 
      // code
    }