带代理的Javascript用户名密码用户系统

带代理的Javascript用户名密码用户系统,javascript,php,proxy,Javascript,Php,Proxy,某些服务URL需要用户名密码参数以确保安全。在本研究中,我们建议在服务器上使用代理脚本。不要在javascript应用程序中使用用户名-密码对。例如,我为自己指定了一个url如下所示的服务: http://service.com/service?request=get&category=products&username=some&password=123456 此服务不提供没有用户名密码对的产品 我应该用PHP、Aspx、Java或其他语言创建一个代理页面。我用PHP

某些服务URL需要用户名密码参数以确保安全。在本研究中,我们建议在服务器上使用代理脚本。不要在javascript应用程序中使用用户名-密码对。例如,我为自己指定了一个url如下所示的服务:

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);
现在我可以使用
http://localhost/my/proxy.php
在我的javascript代码中。但每个人都可以向我的代理发送请求并获取我的产品。这是一个问题。我怎样才能解决这个问题

  • 仅允许向URL发送POST请求

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      // code
    }
    
  • 为受信任的用户提供令牌(带有cookie),并在提供服务之前检查令牌

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

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

  • 要求他们对您的服务进行身份验证。