쇼핑몰 관리자로 로그인해서 쇼핑몰 설정으로 들어갈려고 하는데 "exec 함수실행이 불가능하므로 사용할수 없습니다." 문구가 뜨면서 진입을 못하네요 KCP결제관련도 문제가 생긴것 같습니다.
호스팅사에 문의해본결과 php보안 업데이트 관련 조치사항으로 임의 해제조치는 어렵다는 답변을 받았습니다.
또한 kcp결재 모듈에서 제공하는 최신버전으로 exec등 실행함수가 아닌 api를 통한 연동으로 php버전 업데이트와 함께 업그레이드하여 이용을 권장하더군요
이경우 해결방법이 호스팅이전 밖에 없는것인지 이전하면 어느회사 호스팅이 적당한지 추천부탁드립니다.
답변 16개 / 댓글 3개
해당 문제는 반드시 호스팅을 이전해야 해결되는 것은 아닙니다.
우선 현재 그누보드 및 영카트 버전, PHP 버전, KCP 결제 모듈의 호환성을 확인하는 것이 중요합니다.
기존 소스에서 exec 함수 사용 부분을 수정하고 KCP 결제 모듈을 최신 API 방식으로 교체하면 기존 호스팅에서도 해결할 가능성이 있습니다.
다만 호스팅 환경에서 필요한 기능을 지원하지 않는다면 서버 설정이 자유로운 VPS나 클라우드 호스팅으로 이전하는 것도 고려해 볼 수 있습니다.
우선 소스와 서버 환경을 점검한 후 이전 여부를 결정하시는 것을 추천합니다.
보안상 위험한 명령어라서 보통 호스팅 환경에서는 제한되어 있습니다.
다른 방법으로 같은 효과를 낼 수 있는 방법을 찾아야 할 것입니다.
요즘 보안 위험이 증가 하고 있어 위험한 명령어를 실행 하게 하는 것은 조심해야 할 것입니다.
그놈의 ai 를 나쁜넘들이 더 잘 쓴다는게 문제 입니다...
호스팅을 옮기지 않아도 됩니다. 위에 운영진이 안내한 KCP REST API로 바꾸시면 exec 없이 결제가 됩니다. 실제로 적용하실 때의 순서를 정리해 드립니다(그누보드 최신 소스 기준).
1. 그누보드 업데이트 또는 패치
- 5.6.43 이상이면 최신판(5.6.44)으로 올리시는 게 가장 간단합니다.
- 구버전이라 전체 업데이트가 부담스러우면, 운영진이 위에 남긴 커밋 두 개(KCP REST 연동, exec 차단 안내)만 골라서 적용하셔도 됩니다.
- 업데이트 전에 파일과 DB는 꼭 백업해 두세요.
2. 쇼핑몰설정에서 연동 방식 변경 관리자 > 쇼핑몰관리 > 쇼핑몰설정 > 결제설정(NHN KCP)에 «KCP 결제 연동 방식» 항목이 새로 생깁니다. 이 값을 «KCP 결제 모듈 (기본)»에서 **«KCP REST API»**로 바꾸세요.
- 기본 모듈(pp_cli)은 exec로 실행 파일을 돌리는 방식이라 막힌 것이고, REST API는 HTTPS 통신이라 exec가 필요 없습니다.
- REST API에는 KCP에서 받는 서비스 인증서와 개인키가 필요합니다. 아직 없으시면 KCP에 REST API용으로 발급을 요청하세요.
- 서버에 PHP cURL과 OpenSSL 확장이 있어야 합니다. 없으면 설정 화면에서 경고가 뜨니 그때 호스팅사에 확인하시면 됩니다.
3. 테스트 결제 먼저 테스트 결제로 승인과 취소(에스크로·현금영수증을 쓰시면 그것까지)를 한 번 돌려 보고 실결제로 전환하세요.
빠지기 쉬운 점: 휴대폰 본인인증 KCP **본인확인(휴대폰 인증)**을 쓰고 계시다면, 이 모듈(ct_cli)은 여전히 exec가 필요합니다. 최신 소스에서도 이 모듈의 안내는 «exec 함수 허용을 요청해 주세요»뿐이고 REST 대체가 없습니다. 본인인증을 쓰신다면 다른 본인확인 서비스로 바꿀지 따로 정하셔야 합니다. 결제만 쓰신다면 신경 쓰지 않으셔도 됩니다.
https://sir.kr/boards/g5_pds/7803
KCP REST API 선택 연동 방법은 안내 페이지를 참고해 주세요.
https://sir.kr/services/pg/kcp#kcp-integration
구버전 그누보드 이용 도중 KCP REST API만 선택적으로 패치하시는 경우 다음 커밋을 참고해 주세요. (5.6.43 기준) 감사합니다.
호스팅 이전이 반드시 유일한 해결 방법은 아닌 것 같습니다.
현재 오류는 호스팅 업체의 보안 정책으로 PHP의 exec 함수 사용이 제한되면서 발생하는 문제로 보입니다.
우선 사용 중인 영카트 버전과 KCP 결제 모듈을 확인해 보시는 게 좋겠습니다. 기존 결제 모듈이 exec 함수를 필요로 하는 방식이라면 PHP 버전만 변경해도 문제가 해결되지 않을 수 있습니다.
KCP에서 제공하는 REST API 방식으로 전환할 수 있는지 확인하고, 현재 영카트 버전과 호환되는 연동 방법이 있는지 먼저 알아보시는 것을 추천드립니다.
호스팅 이전은 기존 환경에서 지원 가능한 해결 방법이 없을 때 검토하셔도 늦지 않을 것 같습니다. 이전하더라도 서버의 PHP 설정과 결제 모듈 호환성을 사전에 확인하시는 게 안전하겠습니다.
영카트 5.3333에 아미나 빌더를 사용 중이시면, 구버전 KCP 모듈이 exec 차단에 영향을 받는 상황으로 보입니다.
KCP에서 API 방식으로 전환하는 방법을 제공하고 있으니, 현재 호스팅에서 결제 연동을 변경하는 쪽도 검토해보시면 됩니다. 다만 영카트에 맞게 적용하는 작업은 필요합니다.
아미나 빌더까지 사용 중이라 최신 영카트를 그대로 덮어쓰시면 안되구요
php 버전을 올리셔도 어차피 5.3333 베이스라서 호환성에서 안됩니다.
관리자 설정에서 단순 exec on 을 해도 안되구요
따라서 kcp 에서 api 방식가이드대로 해당 결제 모듈만 업데이트 하는 방향으로 작업하시는걸 추천해드립니다.
답변에 대한 댓글 2개
답변을 작성하려면 로그인이 필요합니다.