JSTL 썸네일형 리스트형 JSP EL vs <c:out> 차이 및 XSS 대응 정리 JSP EL vs 차이 및 XSS 대응 정리1️⃣ 문제 배경JSP 화면 개발 중 게시글 제목을 출력할 때 아래 두 가지 방식이 혼용되고 있었다. ${article.articleTitle} value="${article.articleTitle}"/> 겉보기에는 동일하게 동작하지만, 보안 및 출력 처리 방식에서 중요한 차이가 존재한다.2️⃣ 기술적 차이 분석🔹 1. EL(Expression Language) 직접 출력 ${article.articleTitle} 단순히 객체의 프로퍼티 값을 출력null일 경우 아무것도 출력하지 않음HTML escape 처리 없음사용자 입력값 포함 시 XSS 취약 가능성 존재예시: 위 값이 DB에 저장되어 있다면 브라우저에서 그대로 실행될 수 있음.🔹 2. JSTL .. 더보기 JSP/JSTL에서 파일명 확장자 제거 처리 📌 JSP/JSTL에서 파일명 확장자 제거 처리 (마지막 . 기준)1️⃣ 문제 상황파일 다운로드 영역에서 원본 파일명(atchmnflOrginlNm)을 화면에 출력해야 했다. ${fn:replace(atchmnflInfo.atchmnflOrginlNm, ext, '')} 기존 로직은 ext 값을 이용해 확장자를 제거하는 방식이었지만, 다음과 같은 문제가 있었다:파일명에 .이 여러 개 포함될 수 있음archive.tar.gzreport.final.docxfn:substringAfter()는 첫 번째 . 기준으로 동작JSTL에는 lastIndexOf() 함수가 존재하지 않음즉, “마지막 . 기준으로 확장자 제거”를 EL만으로 처리하기 어려운 상황이었다.2️⃣ JSTL 함수의 한계JSTL fn 함수에서 제.. 더보기 이전 1 다음