CakePHP3.2.4 -> 3.2.5에서 변경된 $this->request->clientIp() 정보
Cake\Network\Request::clientIp()
가 변경되었고 HTTP_CLIENT_IP
를 보는 것은 Request::trustProxy
가 true
일 때만되었습니다. ( HTTP_CLIENT_IP
는 위장될 우려가 있기 때문에.)그래서 로드 밸런서나 프록시를 통한 경우,
$this->request->trustProxy = true;
$clientIp = $this->request->clientIp();
라고 하면, 지금까지와 같이
HTTP_X_FORWARDED_FOR
이나 HTTP_CLIENT_IP
를 봅니다만, trustProxy
가 false
의 경우(디폴트)라면, REMOTE_ADDR
만을 봅니다. (이전에는 HTTP_CLIENT_IP
이나 HTTP_CLIENTADDRESS
도 보고 있었다.)그래서, 지금까지
$this->request->clientIp()
를 사용하고 있던 것이 CakePHP3.2.5로의 버전 업으로 그대로 움직일지 어떨지는, 조금 확인이 필요하다고 생각합니다. (원래 REMOTE_ADDR
의 값이 사용되고 있었던 경우는 문제 없을 것.)유닛 테스트 정보
clientIp()
를 사용하여 액세스 제어를하는 것과 같은 부분을 테스트하는 경우,
tests/TestCase/Controller/ArticlesControllerTest.phppublic function testIpOk()
{
$allowedIp = '192.168.1.1';
$this->configRequest([
'headers' => ['CLIENT_IP' => $allowedIp]
]);
$this->get('/articles');
$this->assertResponseOk();
}
라는 느낌으로, configRequest()
로 headers
에 CLIENT_IP
를 지정( HTTP_CLIENT_IP
가 세트 되게 된다) 하고 있었습니다만, 이것이라면 이번 갱신으로 clientIp()
로부터 값이 돌려주었습니다 오지 않습니다.headers
로 지정하면 마음대로 HTTP_
가 머리에 붙이고 REMOTE_ADDR
를 지정하려면 어떻게 하면, , 라고 생각하면 environment
로 설정할 수 있었습니다.
tests/TestCase/Controller/ArticlesControllerTest.phppublic function testIpOk()
{
$allowedIp = '192.168.1.1';
$this->configRequest([
'environment' => ['REMOTE_ADDR' => $allowedIp]
]);
$this->get('/articles');
$this->assertResponseOk();
}
Reference
이 문제에 관하여(CakePHP3.2.4 -> 3.2.5에서 변경된 $this->request->clientIp() 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ran/items/cb70a65f87ae3af9ad92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public function testIpOk()
{
$allowedIp = '192.168.1.1';
$this->configRequest([
'headers' => ['CLIENT_IP' => $allowedIp]
]);
$this->get('/articles');
$this->assertResponseOk();
}
public function testIpOk()
{
$allowedIp = '192.168.1.1';
$this->configRequest([
'environment' => ['REMOTE_ADDR' => $allowedIp]
]);
$this->get('/articles');
$this->assertResponseOk();
}
Reference
이 문제에 관하여(CakePHP3.2.4 -> 3.2.5에서 변경된 $this->request->clientIp() 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ran/items/cb70a65f87ae3af9ad92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)