Files
Gnuboard5/bbs/write_token.php
whitedot 65875b7f35 security: KVE-2026-2330 비회원 게시물 수정 인증과 토큰 발급 검증 강화
기존 비밀번호 확인 이력을 게시판·게시물·비밀번호에 결합하고 저장 전 검증한다. 인증은 30분 후 만료되며 저장 후 폐기한다. 일반 쓰기 토큰과 답변 세션으로 수정 인증을 대체할 수 없도록 한다.

1:1문의 토큰 발급을 로그인 회원의 해당 용도로 제한하고 게시판 토큰의 요청 경로와 대상을 확인한다. 최고관리자의 그누보드4 자료 이전은 유지한다.

검증: 비인증 수정 차단, 정상 비밀번호 변경 및 인증 폐기, 토큰 발급 엔드포인트 격리 검증과 PHP 문법 검사 통과.
2026-09-09 07:58:16 +00:00

17 lines
635 B
PHP

<?php
include_once('./_common.php');
// 그누보드4 자료 이전은 최고관리자에게만 허용되는 별도 용도이다.
$is_import_token = $bo_table === 'g4_import' && $is_admin === 'super';
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !$bo_table ||
(!$is_import_token && (empty($board['bo_table']) || $board['bo_table'] !== $bo_table)))
die(json_encode(array('error'=>'게시판 정보가 올바르지 않습니다.', 'url'=>G5_URL)));
check_request_origin();
set_session('ss_write_'.$bo_table.'_token', '');
$token = get_write_token($bo_table);
die(json_encode(array('error'=>'', 'token'=>$token, 'url'=>'')));