2014-10-29 64 views
0

某些服务URL需要用户名密码参数以确保安全。在这个研究中,我们建议在服务器上使用代理脚本。不要在JavaScript应用程序中使用用户名密码对。例如,我有我指定的URL像这样的服务:带有代理的Javascript用户名密码用户系统

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

此服务DOWS没有给我的产品不用其他的用户名密码对。

我应该创建一个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。但是每个人都可以向我的代理发送请求并获得我的产品。这是一个问题。我该如何解决这个问题?

+0

要求他们对您的服务进行身份验证。 – Barmar 2014-10-29 16:31:34

回答

0
  1. 只允许POST请求的URL

    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. 使用前会议代替饼干

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