반응형



브라우저
|
index.html
(진짜 첫 페이지 / 메뉴 링크 모음)
| | | | |
view.html content.html id.html insert.html del.html
(목록 화면) (회원가입 폼) (목록+로그인 처리) (글쓰기 폼) (삭제 확인 폼)
| | | | |
view.php content.php id.php insert.php del.php
(목록+ 로그인) (글 상세보기) (회원가입 처리) (글 작성 처리) (글 삭제)
| |
| |
conn.php login.php
(Oracle DB 연결(dal)) (세션 인증 처리)
| |
id 테이블ㅡㅡㅡㅡㅡ> board 테이블ㅡㅡㅡㅡㅡ> content 테이블
FK(id) FK(id)
3계층 구조 모든 웹 시스템의 기본
| 화면(HTML) → 로직(PHP) → 데이터(Oracle DB) |
세션 로그인 상태를 페이지 간에 유지하는 방법
session_start() // 세션 시작
$_SESSION["id"] = $id // 로그인 정보 저장
session_destroy() // 로그아웃 시 삭제
HTTP는 원래 페이지를 이동하면 기억을 못한다. 세션이 이걸 해결 해준다
GET vs POST
| GET → URL에 노출됨 (검색, 페이징, 글 번호 전달) POST → URL에 안 보임 (로그인, 글쓰기) |
SQL Injection 원리
| 정상 쿼리문 WHERE id = 'st15' AND pw = '...' 공격 후 WHERE id = 'st15' --' AND pw = '...' SQL Injection 입력창에 ' -- 넣으면 SQL 구조가 변해서 인증 우회가 된다 |
1차원 vs 2차원 페치
| 1차원 - oci_fetch_array() DB에서 결과를 한줄씩 가져온다 if($row = oci_fetch_array($result, OCI_ASSOC)){ // 한 행이 있으면 true $login = 1; } 2차원 - ocifetchstatement() DB 결과 전체를 한 번에 2차원 배열로 가져온다 $row_num=ocifetchstatement($result,$row); if($row_num==1){ $login=1; } |
'Infra & Security Eng > Database Engineering' 카테고리의 다른 글
| [sql 인젝션] - 웹 페이지 sql 인젝션 실습하기 (+UNION based 원리 설명) (0) | 2026.04.03 |
|---|---|
| [SQL 인젝션] - SQL 테이블 출력 전체 명령어 리스트 (0) | 2026.04.03 |
| view, content, insert, id.html 4가지 웹페이지 파일 모델링 실습, 해설 (0) | 2026.04.02 |
| 페이지 구현 파일(id,conn, co_in, sc_vi.php) 파일 관계 구조, 패턴 설명, 명령어 해석하기 (0) | 2026.04.01 |
| conn,i d, check, logout, st_in, st_vi 파일을 활용한 웹 데이터베이스 연동 프로그래밍과 해석해보기 (0) | 2026.03.31 |