워드프레스 5버전 부터 json이 기본 지원되고 있다 rest api라고도 부른다
JSON REST API
JSON(제이슨[1], JavaScript Object Notation)은 속성-값 쌍( attribute?value pairs and array data types (or any other serializable value)) 또는 “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.
본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다. 즉, 프로그래밍 언어나 플랫폼에 독립적이므로, 구문 분석 및 JSON 데이터 생성을 위한 코드는 C, C++, C#, 자바, 자바스크립트, 펄, 파이썬 등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있다.
도메인명.com/wp/wp-json 입력하면 json화면으로 진입 가능하다
json을 검색해보니
html 형식을 json으로 속성과 값 등으로 변환해서 보기 쉽게 만들어준다
물론 사람 뿐 아니라 규칙성을 가지고 있어서 스크래퍼 또한 훨씬 더 스크래핑 하기 수월해진다
단점은 json을 오픈했을 때 다른 타 스크래퍼들이 무차별 스크래핑에
당할 여지를 남긴다 심할 경우 DDOS 공격에 노출될 수 있다
json 비활성화 방법은 json 제어 플러그인을 별도로 설치 또는
사용중인 테마의 function.php 파일에 아래 코드를 추가한다
관리자 계정 이외에는 json을 볼 수 없게 하는 방법이다
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if(! current_user_can( 'administrator' ) ){ // only if administrator
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
}
return $result;
});
위 코드는 구글링을 통해 수정하였다
워드프레스 관리자가 아닐 경우 401 status 결과값을 출력시킨다
파이어폭스에서 도메인명/wp-josn으로 접속 시
관리자가 아닐 경우
관리자일 경우