jsp파일에 자바형식의 코드를 사용할 때의 불편한 점을 해결하고자 등장한 것이 EL(Expression Language)과 JSTL(Jsp Standard Tag Library)이다.



EL(Expression Language)

<%= %>, out.print()와 같은 자바코드를 사용하지 않고 더 간편하게 출력을 지원하기 위한 도구이다. 


문법

 - parameter 형식(request.setParameter("abc")) : ${param.abc}

 - attribute 형식(request.setAttribute("cnt", 100)) : ${cnt+1} (원래 <%=cnt+1%>)

 - 값을 찾을 때는 작은 Scope에서 큰 Scope으로 찾는다. (page -> request -> session -> application)


내장객체


 내장객체

 용도

pageScope

page영역에 존재하는 객체 참조 

requestScope 

request영역에 존재하는 객체 참조 

sessionScope 

session영역에 존재하는 객체 참조 

applicationScope

application영역에 존재하는 객체 참조 

param

parameter 값을 얻어올 때 사용 (1개의 key에 1개의 value)

paramValue

parameter 값을 배열로 얻어올 때 사용 (1개의 key에 여러개의 value)

header 

header 정보를 얻어올 때 사용 (1개의 key에 1개의 value)

headerValue

header 정보를 배열로 얻어올 때 사용 (1개의 key에 여러개의 value)

cookie

쿠키 객체를 참조 ( ${cookie.key값.value값}으로 쿠키 값 조회 )

initParam

초기 parameter 조회

pageContext

pageContext 객체 참조 


**paramValue / headerValue 사용법 두 가지!

 1. ${paramValue.array[0]} : index 0으로 시작

 2. ${paramValue[array][1]} : index 1로 시작

open source application framework for Java platform

Java 기반의 웹, 엔터프라이즈 애플리케이션 개발을 단순화하여 효율성과 생산성을 높일 수 있게 도와주는 container와 library들의 집합이다.



Spring을 이용한 애플리케이션 개발의 장점

- Dependency injection과 interface를 활용한 객체들 간의 느슨한 결합

- POJOs를 이용한 쉬운 개발(기존에 존재하는 라이브러리 등의 지원에 용이)

- Aspects와 common conventions, annotation을 통한 선언적 프로그래밍

- Aspects와 templates을 이용한 단순 반복 코드 제거



특징

- 크기가 작아 부하가 적으며 성능이 우수하다. java객체의 life-cycle을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.

- Dependency Injection(의존성 주입)을 지원한다. xml 또는 annotation 기반 설정을 통해 객체들간의 의존관계를 설정한다.

- 간단한 컴포넌트로 복잡한 어플리케이션을 구성하고 설정할 수 있다.

- AOP(관점 지향 프로그래밍)을 위한 풍부한 지원을 한다.

- 느슨한 결합과 좋은 이식성으로 유지보수에 용이하다.

- MVC framework 및 RESTful web service framework 등을 제공함으로 효율적인 웹 어플리케이션 개발을 지원한다.




'spring framework' 카테고리의 다른 글

[Spring]메이븐(Maven)에 대해..그리고 컴파일과 빌드의 차이  (0) 2019.05.08
[EL/JSTL]JSTL이란?  (0) 2018.06.20
[EL/JSTL]EL이란?  (0) 2018.06.19

xss공격과 sql injection은 웹 해킹의 대표적인 기법이다. 이 두 가지 보안이슈에 대해 알아보았다.



XSS 공격 (Cross Site Scripting)

 CSS라고 말하는 곳도 있지만 CSS는 이미 Cascading Style Sheets의 약어로 쓰이고 있기 때문에 혼동을 방지하고자 보통 XSS라고 한다. XSS는 공격하고자 하는 사이트에 악의적인 스크립트를 삽입하여 비정상적인 페이지가 보이게 함으로써 타 사용자의 사용을 방해하거나 쿠키 및 기타 개인정보를 탈취하는 기버법이다. 여러 사용자가 접근 가능한 게시판 등에 코드를 삽입하는 경우도 많으며, 메일과 같은 매체를 통해서도 전파된다.


 간단하게 id를 입력하면 해당 id를 출력해주는 사이트가 있다고 가정하자. 보통의 사용자는 id만을 입력하겠지만 입력창에 <script>alert(1);</script>를 입력하면 그대로 script가 실행되는것을 볼 수 있다. 이러한 형식으로 해커들은 쿠키정보 및 세션ID 획득, 악성코드 다운로드, 개인정보를 빼가는 거짓 페이지를 노출하는 등의 해킹을 할 수 있다.



SQL-Injection

 말 그대로 sql문에 의도적인 쿼리를 삽입하여 공격자가 원하는 데이터를 얻는 기법이다. 대표적으로 아이디와 패스워드를 입력하는 로그인 페이지를 타겟으로 sql 쿼리문의 true/false의 논리적 연산 오류를 이용하여 로그인 인증 쿼리문이 무조건 true의 결과값이 나오게 하여 인증을 무력화시키는 기법이 있다. 로그인을 할 때 입력창에

' or 1=1--

' or 1=1#

' or 2>1--

등을 입력하면 이를 막아놓지 않은 사이트에서는 쿼리문이 항상 true가 되어 아이디와 비밀번호를 몰라도 로그인을 할 수 있게 된다.


 이외에도 많은 방법으로 데이터를 해킹한다. 아래 링크를 참고하면 좋을 것 같다.


참고 - http://mrrootable.tistory.com/25

+ Recent posts