json 에러 이유를 찾고 있습니다.

json 에러 이유를 찾고 있습니다.

QA

json 에러 이유를 찾고 있습니다.

답변 2

본문

json 로직에 무엇이 잘못된건지 에러로그가 생성되네요

방화벽에서 에러때문에 차단을 한거 같은데...  에러의 원인을 찾아야하는데, 도통 이유를 모르겠습니다.

 

에러 로그 입니다 -_-;;
[Tue Dec 05 03:51:36.145392 2023] [:error] [pid 20241] [client 211.211.211.211] ModSecurity: Warning. Match of "rx ^OPTIONS$" against "REQUEST_METHOD" required. [file "/usr/local/apache/conf/modsec_rules/modsecurity-global.conf"] [line "326"] [id "960015"] [msg "Request Missing an Accept Header"] [data ""] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER"] [hostname "www.happyjung.com"] [uri "/api/error_json.php"] [unique_id "ZW4fuDwq"]
 

 

error_json.php 내용은 다음과 같습니다

<?php
include_once('_common.php');
header('Content-type: application/json; charset=utf8');

if ($device_id) {
    $sql_device = " select * from `order_device` where device_id = '{$device_id}' and agent_id != '' ";
    $row_device = sql_fetch($sql_device);
    
    if ($ping_error_wdate == '') $ping_error_wdate = date('Y-m-d H:i:s');

    // 등록
    if ($row_device['device_id']) {
        $row_array = [ 'device_id' => $device_id, 'ping_error_sdate' => $ping_error_sdate, 'ping_error_wdate' => $ping_error_wdate, 'msg' => '정상' ];

        if ($ping_error_sdate) {
            $sql_up  = " insert into `order_ping_error` (device_id, ping_error_sdate) values ('{$device_id}', '{$ping_error_sdate}') " ;
            sql_query($sql_up);
        }
    } else{
        $row_array = [ 'device_id' => $device_id, 'ping_error_sdate' => $ping_error_sdate, 'ping_error_wdate' => $ping_error_wdate, 'msg' => '미인증' ];
    }
} else {
        $row_array = [ 'device_id' => $device_id, 'ping_error_sdate' => $ping_error_sdate, 'ping_error_wdate' => $ping_error_wdate, 'msg' => '미등록' ];
}
echo json_encode($row_array, JSON_UNESCAPED_UNICODE);

이 질문에 댓글 쓰기 :

답변 2

Request Missing an Accept Header

클라이언트가 서버로 보낸 요청에는 Accept 헤더가 없다고 합니다.

따라서 클라이언트 요청에 Accept 요청에 이 헤더를 추가시켜 주므로해서, 방화벽에서의 차단이 해제될 것으로 보입니다.

그렇다면... 

보안도구가 해당요청을 차단하지 않도록 헤더부분에 header('Accept: application/json'); 추가 해줘보세요

 

내용을 추가하고 로그 쌓이는 것을 보니 ... 같은 메시지가 뜹니다.
무엇을 더 봐야 할까요?

[Wed Dec 06 08:51:07.961926 2023] [:error] [pid 25372] [client 211.111.111.111] ModSecurity: Warning. Match of "rx ^OPTIONS$" against "REQUEST_METHOD" required. [file "/usr/local/apache/conf/modsec_rules/modsecurity-global.conf"] [line "326"] [id "960015"] [msg "Request Missing an Accept Header"] [data ""] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER"] [hostname "www.happyjung.com"] [uri "/api/ping_json.php"] [unique_id "ZW@3a5dPgKgF"]

로그는 모드시큐리티 문제인거 같네요. ID 960015 예외처리 하시거나 아니면 api로 사용하시는거면 api요청하실때 header에 'Accept': 'application/json' 추가해보시겠어요

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #json ×
전체 150
© SIRSOFT
현재 페이지 제일 처음으로