2024. 4. 11. 11:05ㆍ복습/인터넷 보안 실습
기본 페이지 수정 (default.asp)
현재 기본페이지에는 ㅇㅇㅇ님 로그인 되었습니다 밖에 뜨지 않는다.
이제 그 아래에 게시판을 구현해주기 위해
asp에 아래 구문을 추가해준다.
<%
SQL = "select * from board order by bno desc" 'board(게시글) table의 모든 정보를 bno기준 내림차순으로 출력하는 구문
Set rs = dbconn.execute(sql) '위의 구문을 실행
if rs.BOF and rs.EOF then 'BOF와 EOF가 같으면 데이터가 없는 것이므로, 데이터가 없다고 알려줌
response.write "데이터가 없습니다."
else %>
<table style="width 600px;">
<tr>
<th>번호</th>
<th>제목</th>
<th>날짜</th>
<th>userid</th>
<th>조회수</th>
</tr>
<%do until rs.eof 'do until, loop 를 이용해 객체의 끝에 도달할 때까지 테이블이 만들어지도록 함 %>
<tr>
<td style="width:100px;"><%=rs("bno")%></td>
<td style="width:300px;"><a href="bView.asp?bidx=<%=rs("bidx")%>"><%=rs("title")%></a></td>
<td style="width:100px;"><%=Left(rs("wdate"),10)%></td>
<td style="width:100px;"><%=rs("name")%></td>
<td style="width:100px;"> <%=rs("readno")%></td>
</tr>
<%rs.movenext
Loop %>
</table>
<%end if%>
그리고 write.asp 에 가서 게시글을 작성해주면
아래와 같이 게시판이 생길 것이다.
게시판 글 수정 (bEdit.asp), (bEdit_go.asp)
게시판 글 수정을 위해서는 두 개의 파일이 필요하다 (bEdit.asp, bEdit_go.asp)
bEdit.asp 는 html 을 이용해 아래와 같이 수정 화면을 구현해주고, form 태그의
method를 이용해 작성된 정보를 bEdit_go.asp로 정보를 넘겨준다.
bEdit_go.asp는 bEdit.asp에서 넘어온 정보를 DB로 넘겨주는 역할을 하는데,
DB에 있는 글 패스워드와 작성된 글 패스워드가 같은지 확인하는 구문도 작성해주어야 한다.
' bEdit.asp 의 form 태그에서 데이터를 받아온 뒤, 변수에 저장
bidx = request.form("bidx")
email = request.form("email")
title = request.form("title")
bContent = request.form("content")
pwd = request.form("pwd")
sql = "select * from board where bidx = "&bidx ' 현재 글 번호와 같은 글을 DB에서 찾아준 뒤,
set rs = dbconn.execute(sql)
'DB에 저장된 글 비밀번호와 작성된 비밀번호 비교
if pwd = rtrim(rs("pwd")) then
'비밀번호 일치할 경우 bEdit.asp에서 받아온 정보를 DB에 넘김
sql = "update board set email='"&email&"', title='"&title&"',bcontent='"&bcontent&"' where bidx="&bidx
dbconn.execute(sql)
%>
<script>
alert("글이 수정되었습니다");
location.href ="default.asp";
</script>
<%else '글 비밀번호가 일치하지 않을 경우 %>
<script>
alert("비밀번호가 일치하지 않습니다.");
history.back();
</script>
이렇게 하면 글이 성공적으로 수정되는 것도 확인할 수 있다.
게시글 삭제 (bDel.asp)
게시글은 현재 로그인 된 사람의 id와 글 작성자의 id가 일치한 경우에만
삭제 권한을 주도록 할 것이다.
html로 아래와 같이 화면이 나오도록 간단하게만 작성해주고,
삭제를 클릭하면 sendit() 함수로 이동하고,
sendit 함수는 현재 로그인된 사용자의 id(세션 id)와
글 작성자의 id가 일치하는지 확인해주기 위해
<% if session("id") = rs("name") then
sql = "delete from board where bidx=" & bidx
dbconn.execute(sql) %>
alert("게시글이 삭제되었습니다.");
location.href="default.asp";
이렇게 if문을 작성해준다.
if문 조건에 성립하면
sql문의 delete문을 이용해 해당 글 번호의 글을 지워주고
게시글 삭제되었다는 알림을 띄워준 뒤
default.asp 페이지로 이동해주도록 한다.
<% else %>
alert("작성자만 글을 삭제할 수 있습니다.");
location.href="default.asp";
<% end if %>
id가 다르다면 글을 삭제해주지 않고
알림창만 띄워주도록 한다.
'복습 > 인터넷 보안 실습' 카테고리의 다른 글
[웹 해킹] 프록시, 버프스위트 입문! (0) | 2024.05.02 |
---|---|
[웹 해킹] SQL 인젝션 - 로그인 인증우회 (0) | 2024.04.28 |
[회원가입 사이트 만들기] 7. 게시판 만들기 (0) | 2024.04.10 |
[회원가입 사이트 만들기] 6. 회원 정보 수정/ 탈퇴 (0) | 2024.04.03 |
[회원가입 사이트 만들기] 5. 로그아웃 페이지 (0) | 2024.04.02 |