WEB Project/JSP

JSP 게시판 만들기 - 12강

꾸준하게 :) 2020. 3. 29. 15:24

12강 게시글 보기 기능 구현하기 (JSP Advanced Development Tutorial #12)

 

 

[소스코드 1]

 

▶ 하나의 글 내용을 불러오는 함수를 추가해보자.

- 아래 코드를 'BbsDAO.java'의 맨 밑에 추가한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public Bbs getBbs(int bbsID) {
    String SQL = "SELECT * FROM BBS WHERE bbsID = ?";
    try {
        PreparedStatement pstmt = conn.prepareStatement(SQL);
        pstmt.setInt(1, bbsID);
        rs = pstmt.executeQuery();
        if (rs.next()) {
            Bbs bbs = new Bbs();
            bbs.setBbsID(rs.getInt(1));
            bbs.setBbsTitle(rs.getString(2));
            bbs.setUserID(rs.getString(3));
            bbs.setBbsDate(rs.getString(4));
            bbs.setBbsContent(rs.getString(5));
            bbs.setBbsAvailable(rs.getInt(6));
            return bbs;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
cs

 

 

[소스코드 2]

 

▶ 실제로 특정한 게시물의 내용을 보여주는 페이지를 만들어보자.

 

- 'write.jsp'를 복사 및 수정하여 'view.jsp' 페이지를 만든다.

- 게시물 내용의 특수문자를 처리하는 코드도 포함한다.

 

 

 

[실행화면 1]

 

▶ 글의 내용을 보여주는 'view.jsp' 페이지를 구성한 후 실제로 게시물을 클릭했을 때 화면

 

 

- 게시물의 작성자가 본인으로 로그인되어있기 때문에 '수정', '삭제' 버튼이 보이는 것을 볼 수 있다.

 

 

[실행화면 2]

 

▶ 다른 아이디로 로그인하여 '실행화면 1'과 동일한 게시물을 클릭했을 때 화면

 

 

- 작성자가 본인이 아니기때문에 '수정', '삭제' 버튼이 보이지 않는다.

 

 

[소스코드 3 & 실행화면 3]

 

▶ 웹 해킹 공격인 크로스 사이트 스크립팅 공격 처리

- 게시판의 글을 작성할 때, 스크립트 문장을 삽입함으로써 글을 보고 있는 사람들에게 영향을 끼치는 해킹 기법

 

게시판에 악성 스크립트 삽입

 

게시판 메인 화면에서 Hello World가 출력되는 모습

 

- 크로스 사이트 스크립팅 공격의 가장 기본적인 형태

 

이렇게 제목이 보이지 않게 된다

 

'view.jsp'와 'bbs.jsp'에 아래 코드를 각각 추가해준다.

- 위 '소스코드 2'의 'view.jsp' 코드에는 정상적으로 추가 되어있다.

 

1
.replaceAll(" ""&nbsp;").replaceAll("<""&lt;").replaceAll(">""&gt;").replaceAll("\n""<br>")
cs

 

 

▶ 다음과 같이 추가한다.

 

'view.jsp'에 삽입

 

'bbs.jsp'에 삽입

 

스크립트 문장이 정상적으로 출력되는 모습

 

- 악성 스크립트를 삽입하려 하더라도 그 자체(특수문자)를 눈에 보이는 형태로 치환해줌으로써 스크립트가 삽입될 수 있는 문제를 미연에 방지하고 보안상의 문제를 막아줄 수 있다. 

 

 

 

출처 : https://www.youtube.com/watch?v=SC7EP8ID9D8&list=PLRx0vPvlEmdAZv_okJzox5wj2gG_fNh_6&index=12

'WEB Project > JSP' 카테고리의 다른 글

JSP 게시판 만들기 - 13강  (0) 2020.03.30
JSP 게시판 만들기 - 11강  (3) 2020.03.28
JSP 게시판 만들기 - 10강  (1) 2020.03.27
JSP 게시판 만들기 - 9강  (0) 2020.03.26
JSP 게시판 만들기 - 8강  (0) 2020.03.25