| 제목 | [ci 수정] 일반 PHP 프로젝트에 CI 적용하기 | ||
|---|---|---|---|
| 글쓴이 | 테러보이 | 작성시각 | 2015/12/14 08:59:09 |
|
|
|||
|
일반 프로젝트에서 ci를 사용하기 위하여 다음과 같은 설정이 필요하여 안내 드립니다. 보통 프로젝트에서 $_GET, $_POST, $_SERVER, $_COOKIE등 변수를 @extract 하여 사용 하는 경우가 많습니다. 하지만 ci로더를 통하여 ci를 호출 하면 보안의 이유로 이를 제거 하게 되는데요. 이를 제거 하지 못하게 하는 방법입니다. # `./ci/system/core/Input.php:575~596`를 주석 처리 합니다.
foreach (array($_GET, $_POST, $_COOKIE) as $global)
{
if ( ! is_array($global))
{
if ( ! in_array($global, $protected))
{
global $$global;
$$global = NULL;
}
}
else
{
foreach ($global as $key => $val)
{
if ( ! in_array($key, $protected))
{
global $$key;
$$key = NULL;
}
}
}
}
|
|||
| 다음글 | AWS PHP SDK를 CI 에서 사용 하기. (3) | ||
| 이전글 | 일반 PHP 프로젝트에 CI 적용하기 (10) | ||
|
쌈닭
/
2015/12/28 17:13:23 /
추천
0
|
|
테러보이
/
2015/12/28 20:53:22 /
추천
0
@쌈닭 ci3.0은 내부 적인 문제로 사용 할일이 없어 못올렸는데.. 좋은 정보 감사합니다.
|
|
쌈닭
/
2015/12/29 12:56:51 /
추천
0
@테러보이 3.0.3 버전에서는 Input.php 가 아닌 CodeIgniter.php 네요... |
|
테러보이
/
2015/12/30 08:28:18 /
추천
0
@쌈닭 오홍! Input.php역활이 CodeIgniter.php로 옮겨졌나보군요! |
CI 3.0.3 버전에서는
111 라인을(./system/core/CodeIgniter.php)
// foreach (array('E' => '_ENV', 'G' => '_GET', 'P' => '_POST', 'C' => '_COOKIE', 'S' => '_SERVER') as $key => $superglobal) foreach (array('E' => '_ENV', 'C' => '_COOKIE', 'S' => '_SERVER') as $key => $superglobal)이렇게 수정하면 $_GET, $_POST 값은 그대로 유지할 수 있네요...