리액트 환경에서 연결 시 오류 문의드립니다.
현재 TOSS페이를 사용하면 2개의 Redirect로 콜백되는데 그 URL은 아래와 같습니다.
http://newproj.cafe24.com/SuccessToss?paymentType=NORMAL&orderId=29ca7744-b814-4a1a-84f8-e7ffb5a84752&paymentKey=a90ZoyegEOALnQvDd2VJbvg211N0wxVMj7X41mNW5kzKbwG6&amount=33000
http://newproj.cafe24.com/FailToss?code=PAY_PROCESS_CANCELED&message=%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EA%B2%B0%EC%A0%9C%EB%A5%BC%20%EC%B7%A8%EC%86%8C%ED%95%98%EC%98%80%EC%8A%B5%EB%8B%88%EB%8B%A4&orderId=29ca7744-b814-4a1a-84f8-e7ffb5a84752
그런데 이 2개의 URL에서 한글부분과 ‘-‘ 이 문제가 되어 403 forbiden 메시지가 방출되면서 페이지 호출이 안되고 잇습니다,
저희는 서버가 CentOS를 사용하고 있습니다
Localhost:3000으로 콜백하면 문제가 없는데 컴파일해서 서버에 올려서
http://newproj.cafe24.com 로 하면 문제가 발생합니다.
아파치에서 한글문제들을 해결하기 위해
LoadModule redurl_module /usr/lib64/httpd/modules/mod_url.so
LoadModule rewrite_module /usr/lib64/httpd/modules/mod_rewrite.so
<IfModule mod_url.c>
CheckURL On
#ServerEncoding UTF-8
#ClientEncoding EUC-KR
</IfModule>
와 같이 추가 설치했음에도 해결이 안되고 있습니다.
다른 유저들은 어떻게 처리된 것인지요….
알려주시면 좋겠습니다.
29 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
403에러의 전체 메시지를 공유해주실수 있을까요?
전체 메시지는 다음과 같습니다!
http://newproj.cafe24.com/SuccessToss?paymentType=NORMAL&orderId=29ca7744-b814-4a1a-84f8-e7ffb5a84752&paymentKey=a90ZoyegEOALnQvDd2VJbvg211N0wxVMj7X41mNW5kzKbwG6&amount=33000
http://newproj.cafe24.com/FailToss?code=PAY_PROCESS_CANCELED&message=%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EA%B2%B0%EC%A0%9C%EB%A5%BC%20%EC%B7%A8%EC%86%8C%ED%95%98%EC%98%80%EC%8A%B5%EB%8B%88%EB%8B%A4&orderId=29ca7744-b814-4a1a-84f8-e7ffb5a84752
위에가 성공했을때이고 아래가 실패했을때라고 합니다.
브라우저 상에 보이는 에러 메시지를 말씀드린겁니다.
우선 저희 입장에서 설명드리면
1. 성공 한 케이스라고 공유주신 거래는 성공한 거래가 아닙니다.
paymentKey a90ZoyegEOALnQvDd2VJbvg211N0wxVMj7X41mNW5kzKbwG6 로 승인 API 요청이 없어서 결제가 만료 된 것으로 보여지네요.
결제는, 잘 알고 계시겠지만
처음에 창이 뜨고, 구매자가 일련의 행동을 완료 한 이후에, (이 단계를 인증이라고 합니다)
인증 완료 된 이후 승인 요청을 진행 해야, 결제가 성공 합니다.
successUrl : http://newproj.cafe24.com/SuccessToss?paymentType=NORMAL
여기에서 승인 API 호출이 누락된것 같은데, 그 부분을 보셔야 할것 같네요.
2. 실패라고 전달한 케이스는, 결제를 취소한 것으로 메시지 확인 되네요.
http://newproj.cafe24.com/SuccessToss
http://newproj.cafe24.com/FailToss
여기 페이지들은 정상적으로 구현이 되어 있나요?
우선 ModSecurity 기능을 비활성화 해보실수 있을까요?
넵 확인해보겠습니다!
말씀해주신 ModSecurity 기능은 현재 설치되어있지 않으며, sucessToss 가 호출된 후에 승인요청하고 있는 상태라고 합니다.
localhost:3000/SuccessToss 와 localhost:3000/FailToss는 잘 실행되고 Toss싸이트에도 정상적으로 승인요청까지 완료되나, 도메인을 변경하면 오류가 나는 건이라고 합니다!
403 에러 발생하는 페이지 의 에러메시지 캡쳐 가능하신가요?
http://newproj.cafe24.com/FailToss?code=PAY_PROCESS_CANCELED&message=%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EA%B2%B0%EC%A0%9C%EB%A5%BC%20%EC%B7%A8%EC%86%8C%ED%95%98%EC%98%80%EC%8A%B5%EB%8B%88%EB%8B%A4&orderId=29ca7744-b814-4a1a-84f8-e7ffb5a84752
여기 호출하셨을때 발생하는 에러요..
https://newproj.cafe24.com/FailToss 이걸 외부에서 브라우져로 그냥 호츨시에도 403 에러가 나는데..이건 의도한 상황이 맞으신걸까요?
의도한게 아니라 이게 - 와 한글ㄷ이 있으면 안들어가집니다
외부에서 호출시에 403이 나는건 인증이 걸려있으신것 같은데요.
이게 리액트로 개발되서 localhost:3000/FailToss?...로 하면 이상이 없습니다
아마도 아파치에서 문제가 있는 듯하거든요
네 아파치에서 한글이 url 인코딩 된것을 막아서 생기는 것으로 보입니다.
- 의 경우 아파치에서 URL에 포함되어 있으면 예약어가 아니기때문에 오류발생하고요
그래서 정확히 아파치가 어떤 에러를 보내는지 알아야 가이드를 드릴수 있어요.
이를 아파치에서 허용할려면 어떻게 해야하는지 검색해도 안보이네여
저 문장에서 - 와 한글을 빼면 잘 실행됩니다
이 API를 사용하는 다른 사용자들도 같은 문제가 발생했을 것 같은데여
에러메시지 확인은 안되시나요?
잠시만요 찾아보죠
지금 브라우저에서 저 URL 넣으시면 될겁니다.
[Tue Aug 08 16:07:46.594899 2023] [:error] [pid 6973] [client 74.82.16.196:39158] [client 74.82.16.196] ModSecurity: Access denied with code 403 (phase 2). Pattern match "\\W{4,}" at ARGS:message. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_40_generic_attacks.conf"] [line "37"] [id "960024"] [rev "2"] [msg "Meta-Character Anomaly Detection Alert - Repetative Non-Word Characters"] [data "Matched Data: \xec\ \x82\xac\xec\x9a\xa9\xec\x9e\x90\xea\xb0\x80 \xea\xb2\xb0\xec\xa0\x9c\xeb\xa5\xbc \xec\xb7\xa8\xec\x86\x8c\xed\x95\x 98\xec\x98\x80\xec\x8a\xb5\xeb\x8b\x88\xeb\x8b\xa4 found within ARGS:message: \xec\x82\xac\xec\x9a\xa9\xec\x9e\x90\xea\xb 0\x80 \xea\xb2\xb0\xec\xa0\x9c\xeb\xa5\xbc \xec\xb7\xa8\xec\x86\x8c\xed\x95\x98\xec\x98\x80\xec\x8a\xb5\xeb\x8b\x88\ \xeb\x8b\xa4"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] [accuracy "8"] [hostname "newproj.cafe24.com"] [uri "/FailToss"] [unique_id "ZNHpwmBMD@3 PvRbCovxOswAAAAE"]
[Tue Aug 08 16:08:48.785597 2023] [:error] [pid 6973] [client 211.238.98.232:25039] [client 211.238.98.232] ModSecurity: Access denied with code 403 (phase 2). Pattern match "([\\~\\!\\@\\#\\$\\%\\^\\&\\\\(\\)\\-\\+\\=\\{\\}\\[\\]\\|\\:\\;\"\\ '\\\xc2\xb4\\\xe2\x80\x99\\\xe2\x80\x98\\`\\<\\>].?){4,}" at ARGS:orderId. [file "/etc/httpd/modsecurity.d/activated_rules /modsecurity_crs_41_sql_injection_attacks.conf"] [line "159"] [id "981173"] [rev "2"] [msg "Restricted SQL Character Anomaly Detection Alert - T otal # of special characters exceeded"] [data "Matched Data: - found within ARGS:orderId: 29ca7744-b814-4a1a-84f8-e7ffb5a84752"] [ver "OWASP_CRS /2.2.9"] [maturity "9"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [hostname "newproj.cafe24.com"] [uri "/SuccessToss"] [unique_i d "ZNHqAGBMD@3PvRbCovxOtAAAAAE"]
아래는 SuccessToss dhfbdlqslek
오류입니다
modsecurity 안쓰신다고 하지 않았나요?
에러메시지는 modsecurity 에서 발생하는 것으로 보이는데요.
ModSecurity: Access denied with code 403 (phase 2). Pattern match "\W{4,}" at ARGS:message.
httpd.conf에 정의되어 있지않아서 그런줄 알었습니다.
이 서버에 제가 OS 설치한게 아니라서요
서버 설치한 분께 ModSecurity 를 우선 비활성화 해달라고 해보셔야 할것 같습니다.
네 잠시만요
비활성화 해서 된다면
SecRule 에서 해당 패턴의 요청을 허용해 주시거나 하셔야 할것 같습니다.
아파치 설정 담당자가 있으시면 그분께 검토요청을 해보셔야 할것 같아요.
sp
mod security 를 지우니깐 인식하네여
감사합니다....이거 보안사용안해도 별 문제는 없을까요
그부분은 저희가 가이드 드리기 어렵습니다.
ㄴp
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.