[security] 엑셀/CSV 다운로드 출력값 안전 처리
lib/common.lib.php 에 csv_safe_cell() 헬퍼 추가 (function_exists
가드 포함). 셀 값이 = + - @ TAB CR 로 시작하면 작은따옴표를 prefix
하여 스프레드시트가 수식으로 해석하지 못하도록 변환.
다음 출력 지점에서 사용자 입력 컬럼에 적용:
- adm/shop_admin/orderprintresult.php (CSV + XLS 두 분기)
- adm/shop_admin/orderdeliveryexcel.php
- adm/member_list_exel_export.php
- adm/sms_admin/num_book_file_download.php
호출부는 function_exists('csv_safe_cell') ? ... : 원본 폴백 형태로
감싸서 lib 미업데이트 환경에서도 fatal error 없이 동작하도록 함.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
4c00c60006
commit
a6fbbe6ad2
5 files changed
+50
-27
No files matched your search
@@ -213,6 +213,25 @@ if (!function_exists('get_js_safe_string')) {
|
||||
}
|
||||
|
||||
|
||||
// CSV/Excel 셀에 출력할 값을 안전하게 변환 (수식 인젝션 방지)
|
||||
// 값이 = + - @ TAB CR 로 시작하면 작은따옴표를 prefix 해 수식 해석을 차단
|
||||
if (!function_exists('csv_safe_cell')) {
|
||||
function csv_safe_cell($v)
|
||||
{
|
||||
if ($v === null || $v === '') {
|
||||
return $v;
|
||||
}
|
||||
$s = (string)$v;
|
||||
$first = substr($s, 0, 1);
|
||||
if ($first === '=' || $first === '+' || $first === '-' || $first === '@'
|
||||
|| $first === "\t" || $first === "\r") {
|
||||
return "'" . $s;
|
||||
}
|
||||
return $s;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 경고메세지를 경고창으로
|
||||
function alert($msg='', $url='', $error=true, $post=false)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user