IT (192) 썸네일형 리스트형 HTML - <form>, get, post 방식 1. HTML - ?! # 사용자의 입력 정보를 받기위한 요소로 구성되어있다. - type = "submit" : 버튼에 대한 속성미여, 사용자 데이터를 처리할 페이지로 전달 된다. # action 속성 : 사용자 데이터를 전달할 웹페이지다. # method 속성 : get 또는 post 방식이있다. - get : 사용자의 입력 데이터를 url에 표시하며, 데이터 크기에 제한이있고 쿼리 형식이다. - post : 데이터 크기의 제한이 없어 많은 양의 데이터를 전달 할 수 있다. 1). form 태그 속성 # action="result.jsp"로 사용자 입력 정보가 넘어간다. # method="get" 먼저 get방식을 살펴보자. 2). label 태그 # 그림과 같다. 3). input 태그 # 사용자의.. 서블릿(Servlet) 1. 서블릿(Servlet) # 서버에서 웹페이지 등을 동적으로 생성하거나 데이터를 처리할 수행하기 위해 자바로 작성된 프로그램이다. # Java코드 안에 HTML태그가 삽입되며 자바언어로 되어있다. # 확장자는 java이다. # 클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 자바프로그램이다. # HTML 태그 및 자바스크립트는 클라이언트의 브라우져가 실행한다. # JSP로 작성된 웹페이지는 서블릿 클래스로 컴파일된다. # JSP는 서블릿 기반의 '서버 스크립트 기술'이다. ! JSP 와 비교 - JSP는 키워드가 태그화 되어 서블릿에 비해 배우기 쉽다. - JSP는 자바코드를 태그 안에 처리해주어야 한다. - JSP는 HTML처럼 태그를 사용하여 자바코드도 사용이 가능하다. JSP는.. html 기본 1. HTML 이해하기 HTML은 웹문서를 작성하는 언어이다. HTML은 프로그래밍 언어의 범주에 들어있지만 범용적인 프로그래밍 언어와는 달리 문서를 작성하는데 특화되어있다. HTML은 구조가 단순한데, 문서를 만드는 언어이므로 가장 중요한 것은 문서의 내용이다. 문서는 태그로 이루어져 있다. 태그를 활용하지 않으면 다음 사진과 같이 밋밋하고 무엇이 제목인지도 알 수 없다. 따라서 태그의 사용유무에 따라 차이가 크다. 브라우저는 HTML 문서를 해석할 때 HTML 태그를 가지고 해석을 한다. 줄 바꿈, 글자 위치, 글자 크기, 색, 문자열에 연결된 링크, 표, 이미지, 리시트 등등을 모든 작업은 태그를 필요로 한다. # 태그란? 의 형식으로 표현한다. 시작 태그와 끝나는 태그가 쌍으로 존재하는 데 끝나는.. 웹프로그래밍의 이해 1. 클라이언트 / 서버 방식의 구조 - 클라이언트(웹 브라우저)가 특정 페이지를 웹 서버에 요청(request) - 요청이들어오면 웹 서버가 처리 후 클라이언트에게 응답(Response) - 동적으로 변화하는 데이터를 처리하고 표시하기 위해서 개발 된 것이 CGI, ASP, PHP, JSP 등이 있다. 2. 웹 프로그래밍 언어의 종류 - CGI (Common Gateway Interface) - ASP(Active Server Page) - PHP - JSP와 Servlet # 자바 언어 기반으로 멀티쓰레딩(Multi Thread)에 의해 사용자 요구를 처리 # Servlet - 자바 코드에 의존적, JSP - 비교적 덜 의존적 # JSP와 Servlet은 같은 처리 구조를 가짐 3. JSP 및 서블릿.. 정보보안5 (13,14,15) - 시스템 콜 (systemcall) 2. 시스템 콜 시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스이다. 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 c나 c++같은 고급언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다. - 리눅스 : 시스템 콜 (커널이 제공) - 윈도우즈 : WIN API ssize_t write(int fd, const void *buf, size_t count); ---> write systemcall의 구조 위와같이 시스템 콜을 직접이용하여 작성하면 되는데, 구글에 systemcall tables를 검색하여 고유의 번화와 각각레지스터의 인자값을 적절히 넣으면 된다. return값이 있는경.. 정보보안5 (16) - 디버거 ! 디버거 사용법 - De + Bugger - Bug : 벌레( 그레이스 호퍼 ) - 프로그램에 오류를 일으킬 수 있는 존재 (Bug) - De Bug -> DeBugging -> DeBugger (벌레를 잡음 즉, 오류를 잡는다.) - linux 에는 GDB가 있다. gcc -o myshell myshell.c -g --->> -g명령어를 통해 디버거된 파일을 만든다. ! 디버거를 통한 프로그램의 실행 #> ./myshell -> execve -> 프로세스 - 일반적인 경우 프로세스 제어 불가능 (접근 불가능) #> GDB -> ./myshell -> 프로세스 - 디버거를 통해 프로세스를 직접 제어 (접근) 1. 코드 확인 - C로 작성된 -> main - assembly 작성된 -> _start (g.. 정보보안5 (12) - main함수의 인자 1. main 함수 1의 인자 - 포인터 배열 : 배열인데 주소를 원소로 하는 배열 - 배열 포인터 : 포인터인데 배열을 나타내는 int main( int argc, char *argv[] ) // 포인터 배열 { printf("%s \n", argv[1] ) // argv[1]는 주소가 들어있다. return 0; }; 메인함수도 하나의 함수이기 때문에 push ebp mov ebp, esp ebp + 4 에는 eip ebp + 8 에는 int argc ebp + 12에는 char *argv[]가 있다. 밑의 예제는 ebp + 8 즉 argc(인자의 개수를 표현)를 확인 할 수 있다. (인자의 개수에는 파일의 이름도 포함되어있다.) [실습] argv의 첫번째 요소에는 시행파일이름이, 다음부터는 main.. 정보보안5 (10,11) - call, 스택메모리의 함수표현 1. call & jmp 명령의 차이 - 공통점 : 해당 주소의 명령을 실행한다. ( 해당 주소를 eip 레지스터에 저장 ) ! cpu 는 eip 레지스터를 통해 실행할 명령어를 찾는다. - 차이점 : jmp 명령어는 해당 주소로 바로 이동하지만, call 명령어는 스택에 데이터를 저장하고 이동한다. (call명령어는 복귀할 주소를 저장한다!) 아래 예제는 다음 c언어 코드를 어셈블리로 표현한 것이다. int sum (int a, int b){ int sum = 0; a + b = sum; return sum; } int main(void) { int a = 10; int b = 20; int sum = 0; sum = sum(a, b); printf("%d \n", sum); return 0; } [ .. 이전 1 ··· 14 15 16 17 18 19 20 ··· 24 다음