nginx 는 보통 다음과 같은 설정을 사용한다
location ~ \.php$ {
    #fastcgi_pass  127.0.0.1:9000;
    fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    include        fastcgi_params;
}
이때 보안 문제가 생긴다.

aaa.com/bad.hack/bbb.php  이런식으로 비정상적인 접근이 허용된다.
이를 막기 위해 설정을 변경해줘야 한다.

참조 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=73442
/etc/nginx/fastcgi_params 파일에 다음을 추가한다.
set $fastcgi_script_realname $fastcgi_script_name;
if ( $fastcgi_script_name ~ ^(.*\.php)(/.*)$ ) {
    set $fastcgi_script_realname $1;
    set $path_info $2;
}
if (!-f $document_root$fastcgi_script_realname) {
    return 404;
}

또는 /etc/php.ini  설정을 바꿔준다.
cgi.fix_pathinfo=0
nginx 에서 php-fpm 으로 넘기기전에 막아주는 것이 좋을 듯 하니 첫번째 방법이 좋을 듯 하다.


참조 : CI 에서는 다음처럼 rewrite 룰을 적용했다.
if (!-f $request_filename) {
    rewrite ^/CI_forum/(.+)$ /CI_forum/index.php/$1 last;
}
CI 를 설치한 폴더에 따라 변형해서 사용하면 된다.



반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,