1

https://github.com/philsturgeon/codeigniter-restserver/소화 이해 인증 - CodeIgniter의 나머지 서버

나는 위의 나머지 서버를 사용하는 API를 작성 지금 로그인 보호 할 필요가있다. 나는 1) 기본, 2) 나는 또한 내가 위의 코드에서 $config['rest_valid_logins'] = array('admin' => '1234');

$this->load->library('rest', array( 
     'server' => 'http://mynew/api/', 
     'http_user' => 'admin', 
     'http_pass' => '1234', 
     'http_auth' => 'basic', // or 'digest' 
     //'http_auth' => 'digest' 
    )); 

    $user = $this->rest->get('listrecord', array('key' => 'mykey'), 'json'); 

이 API를 테스트하기 위해 나머지 클라이언트를 사용하고

을 소화 나머지 서버에서 두 가지 방법이 있습니다 알고 "기본"인증은 정상적으로 작동하지만 인증을 변경하면 인증되지 않음이 표시됩니다. 여기서도 변경하면 구성도 변경됩니다.

내 이해는 기본이 매우 안전하지 않다는 것입니까? 그래서 나는 그것이 소화가 그것보다 낫다고 생각하는 이유입니다. 모든 아이디어 어떻게 다이제스트가 작동합니까 ?? 당신의 도움을 주셔서 감사합니다. 그것은 codeigniter 특정 문제가되지 않을 수도 있습니다.

답변

1

약간의 문제를 줄이고 SSL을 통한 기본 인증을 사용할 수 있습니다. SSL을 사용하지 않는다면 다이제스트가 될 수있는 방법이라고 생각합니다. SSL을 사용하지 않는다면 다시 안전하지 않습니다.

나는 당신의 문제가 클라이언트 또는 서버

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://mynew/api/"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); 
curl_setopt($ch, CURLOPT_USERPWD, "admin:1234"); 

// need to get WWW-Authenticate header from the server (for realm and nonce) with a HEAD request 
curl_setopt($ch, CURLOPT_NOBODY, 1); 
curl_exec($ch);   

// the get the real output 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_HTTPGET, 1); 
$output = curl_exec($ch); 
echo $output; 
에 있는지 여부를 파악하기 CURL을 사용하여 REST 서버를 테스트 할