[02] form, input, label, textarea, select, div, span, css, id, class, style, img
| Study/웹보안 2015. 5. 7. 15:02- 2015.03.10 웹보안
1. form tag
[기본]
<body>
<form>
<input type="text" name="search" />
<input type="submit" />
</form>
</body>
[form get 방식]
<body>
<form method="get">
<input type="text" name="search" />
<input type="submit" />
</form>
</body>
=> 주소에 입력해서 값을 보냄
[form post 방식]
<body>
<form method="post">
<input type="text" name="search" />
<input type="submit" />
</form>
</body>
=> 비밀스럽게 보냄
2. form - input type
<body>
<form>
<input type="text" name="search" /><br />
<input type="password" name="password" /><br />
<input type="file" name="file" /><br />
<input type="submit" />
</form>
</body>
아래 처럼 다양한 것을 확인해볼 수 있다.
<body>
<form>
<input type="text" /><br />
<input type="botton" /><br />
<input type="checkbox" /><br />
<input type="file" /><br />
<input type="hidden" /><br />
<input type="image" /><br />
<input type="password" /><br />
<input type="radio" /><br />
<input type="reset" /><br />
<input type="submit" />
</form>
</body>
3. form - label
<body>
<form>
<label>이름</label>
<input type="text" /><br />
</form>
</body>
보통은 아래처럼 많이 사용한다.
<body>
<form>
<label for="name">이름</label>
<input id="name" type="text" /><br />
</form>
</body>
4.textarea
<body>
<form>
<textarea>
show me the money.
</textarea>
</body>
5. select
<select multiple="multiple">
<optgroup label="HTML 5">
<option>김밥</option>
<option>떡볶이</option>
<option>순대</option>
<option>오뎅</option>
</optgroup>
<optgroup label="CSS 3">
<option>Animation</option>
<option>3D Transform</option>
</optgroup>
</select>
- optgroup 선택옵션을 묶을 때 사용
- select 에 multiple이라는 옵션을 주면 여러게 고를수 있다.
- 스마트폰에서 좀 더 정확히 볼 수 있다)
6. div && span
<body>
<div>Lorem ipsum</div>
<div>Lorem ipsum</div>
<div>Lorem ipsum</div>
<span>Lorem ipsum</span>
<span>Lorem ipsum</span>
<span>Lorem ipsum</span>
</body>
- div, span : 공간 분할태그
- div : block방식 (하나씩 차례대로 다음줄에 출력)
- span : inline방식 (한줄안에 차례대로 출력)
*
h1 태그 - 블락 방식
p 태그 - 블락방식
a, i 태그 -인라인 방식
7. CSS Basic
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
h1 { // 스타일 시트
color: red;
background-color: orange;
}
p{
background-color: blue;
}
</style>
</head>
<body>
<p>Hi Hello</p>
<h1>CSS3 Selector Basic</h1>
<p>The end</p>
</body>
</html>
* Tip
태그 자리에 * 를 줘서 태그를 주면 body 뿐 아니라 전체 모든 태그에 영향을 줌 ~ 까지만 알고 있기
ex)
* {
color: red;
}
다중 속성 부여
body, p, h1, h2, h3, h4, h5, h6 {
margin: 0; padding: 0; // 박스 속성
}
8. id 와 CSS 연동
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
/* id 속성값으로 header를 가지는 태그의 스타일을 지정*/
#header {
width: 800px;
margin: 0 auto;
background: red;
}
#wrap {
width: 800px;
margin: 0 auto;
overflow: hidden;
}
#aside {
width: 200px;
float: left;
background: blue;
}
#content {
width: 600px;
float: left;
background: green;
}
</style>
</head>
<body>
<div id="header">
<h1>Header</h1>
</div>
<div id="wrap">
<div id="aside">
<h1>Aside</h1>
</div>
<div id="content">
<h1>Content</h1>
</div>
</div>
</body>
</html>
9. class 속성 값으로 style 주기
1) Basic
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
/* class 속성값으로 select를 가지는 태그의 color 속성에 red 키워드로 적용*/
.select { color: red; }
</style>
</head>
<body>
<ul>
<li class="select">Lorem ipsum</li>
<li>Lorem ipsum</li>
<li class="select">Lorem ipsum</li>
<li>Lorem ipsum</li>
</ul>
</body>
</html>
2) 여러 class 의 속성을 가져다 사용
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
/* class 속성값으로 item을 가지는 태그의 color 속성에 red 키워드로 적용*/
.item { color: red; }
/* class 속성값으로 header를 가지는 태그의 background-color 속성에 blue 키워드로 적용*/
.header { background-color: blue; }
</style>
</head>
<body>
<h1 class="item header">Lorem ipsum</h1>
</body>
</html>
3) 특정 태그 및 클래스에 style 적용
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
/* li 태그 중 class 속성값으로 select를 가지는 태그의 color 속성에 red 키워드를 적용*/
li.select { color: red; }
</style>
</head>
<body>
<h1 class="select">Lorem ipsum</h1>
<ul>
<li class="select">Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
</ul>
</body>
</html>
4) style 과 태그의 속성을 일치시키자.
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
/* input 태그 중에서 type 속성값을 text로 가지는 태그의 background 속성 적용*/
input[type=text] {background: red; }
</style>
</head>
<body>
<form>
<input /> // type을 지정하지 않으면 기본 text가 되지만 css 적용안됨
<input type="text" />
</form>
</body>
</html>
5) 스타일 속성 세분화 - img 확장자
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Selector Basic</title>
<style>
/* img 태그 중에서 src 속성값이 png로 끝나는 태그의 border 속성에 3px solid red 속성 적용*/
img[src$=png] { border: 3px solid red; }
/* img 태그 중에서 src 속성값이 png로 끝나는 태그의 border 속성에 3px solid red 속성 적용*/
img[src$=jpg] { border: 3px solid green; }
/* img 태그 중에서 src 속성값이 png로 끝나는 태그의 border 속성에 3px solid red 속성 적용*/
img[src$=gif] { border: 3px solid blue; }
</style>
</head>
<body>
<img src="jajq.png" width="200" height="250" />
<img src="node.jpg" width="200" height="250" />
<img src="ux.gif" width="200" height="250" />
</body>
</html>
* Tip - 확장자 말고도 다양한 옵션이 있음
img[src$=jpg] { border: 3px solid green; } // 특정 값으로 끝남
img[src^=jpg] { border: 3px solid green; } // 특정 값으로 시작
img[src~=jpg] { border: 3px solid green; } // 특정 값을 단어로 포함
img[src*=jpg] { border: 3px solid green; } // 특정 값을 포함
'Study > 웹보안' 카테고리의 다른 글
[06] php 및 mysql 설치, 인증, SQL, get & post, http 헤더 (0) | 2015.05.07 |
---|---|
[05] 간단한 웹페이지 작성, index.html, main.css (0) | 2015.05.07 |
[04] Linux 초기설정, web 개요, html, webserver 구축 (0) | 2015.05.07 |
[03] 자/후손 선택자, action, a, 부정 속성, px, %, em, css 색상, 배경 이미지, 가시속성(inline & block), 투명도, box, font, 위치속성, z-index (0) | 2015.05.07 |
[01] 사전 준비 (0) | 2015.05.07 |
- 2015.03.09
1. 사전 준비
Visual Studio Express 2013 for Web 설치
https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
File - Browser with 에서 Chrome 으로 변경
HTML 할 수 있어야 한다
(HTML 여러가지 테크들 배울것이다)
* DNS 수푸풀
네이버에 비번쳣는데 암호가틀렸다 그 화면나오면 보통 내가 잘못쳤구나 하지?
그걸 이용해서 해킹할 수 있다
해커는 실제 네이버와 동일한 웹페이지 하나 만들고, 사람들이 이 웹페이지에 와서
ID/PWD 친다. 그럼 이 정보는 해커에게 가고 암호다시쳐라라는 화면에서 다시치면
진짜 네이버로 넘어가게 해준다. 이런식으로 해킹가능
* 인터넷 vs 웹 차이점
인터넷?
-전세계를 연결하고있는 국제통신망
웹?
-인터넷 위에서 서비스를 제공하고 있는 것
* 그레이해커
-나쁜녀석들을 캐내기 위한 해커
* 보안 뉴스 사이트
네이버에 데일리시큐 치면 나온다.
%%%%%%%%%%%% (속성값들 여러가지 예제 코드있는 사이트)
w3schools.com
%%%%%%%%%%%%
'Study > 웹보안' 카테고리의 다른 글
- 2015.03.05
1. DFS 분산 파일 시스템
[ 분산 파일 시스템(distributed file system)_네임스페이스 문제 ]
# 시나리오 : itbank 회사에 파일서버를 2대를 운영 중에 있었습니다. 파일서버 이용자
들은 2대의 파일서버를 이용할 때 2대의 IP를 번갈아 가며 이용해야 하기에 불편함을
가지고 있었습니다. 해서 시스템 관리자인 여러분은 물리적으로 상이한 2대의 시스템의
공유 자원을 논리적으로 하나의 공유 디렉토리로 묶기로 결정.
# DFS 네임스페이스를 이용하여 2대의 파일서버를 논리적으로 하나의 영역으로 묶어
서비스하세요.
1. Server1 파일 서버 구축(공유)
- 1G 하드디스크 2개 추가 후 X, Y 드라이브로 문자 할당
- X 드라이브 공유 ( administrator 모든 권한 )
) X 드라이브 않에 Server1_X.txt 생성
- Y 드라이브 공유 ( administrator 모든 권한 )
) Y 드라이브 않에 Server1_Y.txt 생성
2. Server2 파일 서버 구축(공유)
- 1G 하드디스크 2개 추가 후 X, Y 드라이브로 문자 할당
- X 드라이브 공유 ( administrator 모든 권한 )
) X 드라이브 않에 Server2_X.txt 생성
- Y 드라이브 공유 ( administrator 모든 권한 )
) Y 드라이브 않에 Server2_Y.txt 생성
3. Server3 DFS Server 구축
- 네임 스페이스 이름 : itbank
- DFS 디렉토리 트리 : itbank\server1\X (Server1의 X 드라이브를 대상으로)
\Y (Server1의 Y 드라이브를 대상으로)
itbank\server2\X (Server2의 X 드라이브를 대상으로)
\Y (Server2의 Y 드라이브를 대상으로)
===========================================================
확인 :
Client1에서 Server3의 공유자원 접근 후 server1, server2 디렉토리가 모두 보이나 확인
[Tip]
1) 서버관리자 - 역할 추가 - 파일 서비스 - 분산 파일 시스템
2) ip 주소 적고 찾으면 됨
2. FTP
[방법]
관리도구 - 역할 추가 - IIS - FTP 추가 설치
IIS 관리자 - 사이트 - Default 웹서버 중지
- 사이트 우클릭 - FTP 사이트 추가 - 원하는 설정 적용 (기본 연결로 설정)
고급 보안이 포함 된 방화벽 - tcp의 20, 21, 1025-65535 포트 개방
[Client 접속 방법]
cmd - ftp ftp서버IP 입력
[ FTP 기본 문제 ]
# Server1 User 추가 : test1, test2
1. Server1에 FTP 서버 구축
- C:\
- SSL 인증 없음
- test1 읽기/쓰기 권한
- test2 읽기 권한
- FTP 메세지
) 배너 : 오셨습니까.
) 시작 : 파일 전송 서비스를 시작합니다.
) 끝내기 : 파일 전송 서비스를 종료합니다.
- FTP 디렉토리 목록 스타일 : UNIX
확인 :
# Server2에서 FTP 접속
- test1 : 파일 업로드 및 다운로드 가능하면 성공
- test2 : 파일 다운로드 가능하면 성공. 업로드는 불가능
# 배너 메세지 확인
# 디렉토리 목록 스타일 UNIX 인지 확인
[ FTP(가상 디렉토리 및 홈 디렉토리) 문제 ]
# Server1 FTP Server
# Local User 추가 : samadal, ddasig
# C:\LocalUser 디렉토리 생성
# C:\LocalUser\samadal 디렉토리 생성 후 디렉토리 안에 samadal.txt 생성
# C:\LocalUser\ddasig 디렉토리 생성 후 디렉토리 안에 ddasig.txt 생성
# C:\전역 디렉터리 생성 후 디렉토리 안에 전역입니다.txt 생성
1. FTP Server 설정
- SSL 인증 없음
- 모든 사용자 : 읽기/쓰기
- FTPROOT 디렉토리 : C:\LocalUser
- FTP 사용자 격리 : 사용자 이름 실제 디렉터리(격리 안 함)
- 가상 디렉토리 : C:\전역
별칭 : itbank
확인 :
# samadal 계정 FTP 접속 후 상위 디렉토리로 이동 가능시 성공
# ddasig 계정 FTP 접속 후 상위 디렉토리로 이동 가능시 성공
# 두 계정 모두 itbank라는 가상 디렉토리 접근 가능하면 성공
[ FTP(접근통제 및 계정 홈디렉토리) 문제 ]
# Server1 FTP Server
# Local User 생성 : ddasig, samadal
# C:\LocalUser 않에 ddasig, samadal 디렉토리 생성
1. FTP Server 설정
- SSL 인증 없음
- 지정되지 않은 클라이언트에 대한 액세스 : 거부
허용 항목 : 100.100.100.130(Client1)
- 사용자 이름 디렉터리에서 시작(격리)
- 모든 사용자 : 읽기/쓰기 권한 부여
- FTPROOT 디렉토리 : C:\
확인 :
# Server2에서 ftp 서버 접속 차단되면 성공
# Client1에서 ddasig, samadal 접속하여 접속된 경로가 어딘지 확인(pwd)
# 자신의 홈 디렉토리에서 상위 디렉토리(FTPRoot 디렉토리)로 이동 안 되면 성공
3. FTPS
[일반 FTP 의 보안상 취약점]
Wireshark 설치 - 랜카드 설치 후 패킷 감시 시작
한글 내용의 txt 파일 다운로드 시 FTP-DATA 라는 프로토콜로 해당 내용을 확인할 수 있다.
FTP DATA 를 아래쪽에서 눌러서 확인해보면 16진수로 나온다. FTP DATA 우클릭 - COPY - BYTE - Offset Hex
복사한 HEXA 코드를 프로그램 이용하여 디코딩 해보면 내용을 그대로 볼 수 있다.
즉 암호화가 되지 않아 스누핑 당했을 시 내용이 그대로 노출된다.
따라서 SSL 프로토콜을 이용하여 보안 및 무결성(변조 여부 확인)을 향상시켜줘야 한다.
하지만 리눅스에서 사용 시 Samba를 이용해야 하기 때문에 잘 사용하진 않는다.
[방법]
IIS 관리자 - HOSTNAME - 서버 인증서 - 자체 인증된 인증서 만들기 - 이름 넣고 확인
FTP 서버 - FTP SSL 설정 - 만들어 놓은 SSL 인증서 선택 - SSL 연결에 128비트 암호화 사용 - 적용
1) SSL 연결 허용 : SSL 해도 안해도 연결 허용
2) SSL 연결 필요 : SSL만 이용
FTP 의 바인딩 설정에서 IP 주소가 * 혹은 본인의 IP 인지 확인
[ FTPS 문제 ]
# 브릿지 설중 후 진행
1. Server1에 IIS 역할 추가(FTP 게시 포함)
2. 기본 웹 사이트 중지 또는 제거
3. FTP 게시 추가
- 사이트 이름 : 자유
- FTPRoot 디렉토리 : 자유
- 연결 바인딩 : 모든 IP
- 포트 21
- SSL 필요
- 기본 인증 : 모든 사용자 읽기/쓰기 권한
4. 인증서 제작
- IIS -> 서버 인증서 -> 자체 서명된 인증서 만들기
) 인증서 이름 : 자유
5. FTP SSL 인증서 선택 후 128비트 암호화
확인 :
리얼 PC에 FileZilla 실행 후 FTPS 서버 접속 후
인증서 받은 후 보안 통신 되는지 확인
4. Webserver
역할추가 - IIS 기본 설치 - Hostname - 사이트 - Default Web Site 제거
C:\inetpub\wwwroot 안에 IIS의 기본 페이지가 만들어져 있다. 안에 내용물 삭제
이 곳에 test.htm 파일을 생성
<title>정지웅</title><br>
<h1>안녕하세요</h1>
사이트 우클릭 - 웹 사이트 추가 - 원하는 설정 - 웹사이트 - 기본 문서 - test.htm 설정 (위에부터 우선순위 있으며 필요 없는것 삭제)
(포트번호 바꿨다면 방화벽에서 해당 포트 개방 필요)
Client에서 웹으로 접속해보면 내가 띄우고자 하는 페이지가 나온다.
'Study > WinServer' 카테고리의 다른 글
[36] DNS 동적 업데이트 및 이중화 (0) | 2015.05.07 |
---|---|
[35] DHCP 인증 with AD (0) | 2015.05.07 |
[34] 메일서버 + VPN 문제 (2) _ VPN 설정, DHCP Local 멀티넷, DHCP 원격 멀티넷 (0) | 2015.05.07 |
[33] 메일서버 + VPN 문제 (1) _ Nmail 설치 (0) | 2015.05.07 |
[32] DNS 전달자, 조건부 전달자 (0) | 2015.05.07 |