쿠키(cookie) - 단점 : 사용자의 정보가 노출되어 보안상 취약 - 쿠키를 이용하는경우 서버에는 데이터가 하나도 남지 않는다. - 사용자의 정보가 로컬 컴퓨터(브라우저)에 저장이 된다.이런점을 보완하기위해 나온것이 세션(session)이다. 세션(session) - 사용자의 정보를 서버에 저장 세션을 사용하기위해선 반드시 - session_start(); → session_id 발행(쿠키를 통해) - 즉, 세션을 사용하기 위해서는 session_start() 함수를 먼저 호출해야만 한다. # 인증 여부와는 상관없이 session_start(); 를 하게되면 클라이언트(웹브라우저)가 쿠키(session_id)를 갖게된다. 세션은 클라이언트가 session_id 하나만 알고있기 때문에 쿠키의 단점(사용..
인증 처리 1. 아파치 웹서버 인증 ( 참고 : http://kevinthegrey.tistory.com/20?category=778262 )아파치에서 인증을 하기위해 사용정보가 있는 파일을 만들어 인증을 처리 - htpasswd 명령어를 통해서 .htpasswd file을 만들어서 진행하였다. 2. 웹 어플리케이션을 이용한 인증처리 - 인증을 하기위한 사용자 DB생성, 직접 인증처리 알고리즘을 작성하여야 한다. DB를 이용해서 실제 인증을 처리해보자. 입력 → 인증(authentication) → 인가(authorization) 인증 : 이 사용자가 올바른사용자인가 아닌가를 판단인가 : 인증 이후의 과정. 인증을 받은 사용자에게 그에 해당하는 권한 부여 # mysql> SELECT * FROM 인증테이..
서버-클라이언트 환경을 만들기 위한 과정 서버 : Socket 생성 → Socket에 이름연결(bind) → 클라이언트의 연결을 기다림(listen) → 클라이언트 받아들임(accept) → 클라이언트의 명령을 받아서 적절한 서비스를 수행 클라이언트 : Socket 생성 → 서버에 연결 시도(connect) → 서버에 각종 명령을 전달 소켓 (위키백과 : https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EC%86%8C%EC%BC%93) - 컴퓨터가 통신을 하기 위한 도구이다. 이 소켓을 이용해서 컴퓨터간에 데이터를 주고받을 수 있다. - 소켓은 모든 운영체제에서 지원해주는 것이다. - 패킷이란 소켓이 주고받는 데이터를 정형화 해놓은..
PHP를 통한 DB제어PHP 에서 제공하는 MySQL라이브러리를 이용해서 PHP 문법으로 DB를 제어해보도록 하자.모든 내용을 세세하게 다룰 수 없으므로, 본인이 직접 레퍼런스 사이트에서 자료를 찾아가며 확인할 수 있어야한다.http://php.net/manual/en/function.mysql-query.php # 기존에 만들어 둔 테이블은 모두 지워 비워두자. # PHP에서 MySQL로 DB쿼리를 보낼때 사용하는 함수 : mysql_query() mysql_query() 함수를 이용하여 PHP에서 DB쿼리를 보냈을때의 결과는 사용한 쿼리가 어떤것인지에 따라 그에대한 응답(Return Value)이 달라진다. - 입력(INSERT), 수정(UPDATE), 삭제(DROP) 쿼리를 보낼 시 : 쿼리가 제대..
테이블 생성 및 삭제 테이블을 생성한다? - 내가 저장할 데이터의 구조를 정의하는것 정형화된 데이터 : 사용자 정보 와 같은것관계형 DB는 정형화된 데이터를 관리하기 용이하다. - 아이디 - 패스워드 비 정형화된 데이터 : 규칙이 없기 때문에 정형화 시킬수 없는 데이터#)_ 참고데이터 마이닝 : 규칙이 없어보이는 데이터를 규칙을 찾아내는 것. 데이터의 형태 # MySQL에서 기본적으로 제공해주는 데이터 타입이다. # 스트링타입에서시간복잡도 : CHAR > VARCHAR공간복잡도 : VARCHAR > CHAR 실제로 대용량의 데이터를 관리하는부분에 있어서는 타입을 정하는것이 신중해야 할 상당히 중요한부분이다. # BLOB 과 TEXT 타입 - 대용량의 데이터를 저장할 때 주로 사용.사람이 게시판의 글을 저..
vi (Visual Editor) : 텍스트편집기 - 리눅스에서 가장 많이 사용하는 텍스트 편집기 - 모드 형 편집기 vim (Vi IMproved) : 향상된 vi - vi 기능을 향상시킨 vi의 클론버전 - 비주얼 모드가 추가됨 - 현재 가장 많이 사용되는 텍스트 편집기 모드(mode)형과 비모드형 편집기 1. 모드형- 입력모드와 명령모드가 구분- 입력모드는 텍스트를 입력할 때 사용하는 모드- 명령모드는 삭제, 복사, 붙여넣기 편집이 가능한 모드- vi는 모드형 편집기 2. 비모드형- 입력모드와 명령 모드가 구분되어 있지 않음- 편집 기능을 Ctrl이나 Alt 같은 특수 키와 함께 사용- 메모장, 한글, 워드는 비모드 형 편집기 # 명령모드 / 입력모드 / 실행모드각각의 모드에서 실행할 수 있는 키입..
보안측면에서 인증은 매우 중요하다. 웹에서 인증 할 수 있는 방법은 기본적으로 2가지이다. - 아파치 웹 서버의 인증 기능 사용 - PHP를 통한 직접 인증 처리 ( 인증처리 프로그램 작성 ) 둘 다 알고있어야 하지만, 보통 두번째를 더 많이 사용한다. 1. 아파치 웹 인증 - 아파치 설정파일 에서 가능하다. #> vi /etc/httpd/conf/httpd.conf 로 들어가보면 # 317번 라인부터 [내용] 형식이 시작된다.위 형식에서 [경로] 에 지정된 경로만 아래의 해당 설정이 적용된다.즉, 해당 디렉토리의 파일에대해 인증을 요구하는 설정이 적용되는 것이다. AuthType Basic AuthName "Basic Authentication" AuthUserFile /var/www/html/.htp..
# 리눅스 파일의 구성. - 파일명 + inode + 데이터블록 //매우 중요한 개념이다. 파일명 - 파일의 이름이 접근시의 기준이 된다. inode (= index node) - 추상화 된 구조체. 약간 어려운 개념이다. 이름을 제외한 모든 정보가 inode라는 테이블에 존재. 데이터 블록 - 실제 데이터가 블록이라는 단위로 분할되어 저장됨. #> ls-i 사용시 아이노드 번호가 출력된다. # 이렇게 사용이 가능하다. 아이노드의 번호는 개인별로 다 다르다. 아이노드 번호를 가지고 실제 파일에 접근하는 과정을 한번 이해해보자. #> cat /root/A 라는 명령어 입력시의 과정을 살펴보자.우리가 실제로 확인 가능한 부분은 User 부분 뿐이다.커널에서의 과정은 추상화 된 그림을 참고하여 반드시 이해하고..
GET vs POST GET : 가져온다 / POST : 수행한다 GET - Select와 비슷한 성향 - 서버에서 어떤 데이터를 가져와서 보여줄 때 사용 - 즉, 서버의 어떤 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용 - 예를 들면, 게시판에서 글의 내용에 대한 목록을 보여주는 경우, 글의 내용을 보는 경우 - 클라이언트로가 입력한 query의 이름과 값이 결합되어 스트링 형태로 서버에 전달 - TAG의 METHOD 속성의 값으로 GET을 입력 - ex) - 한번 요청시 전송 데이터 양은 주소값+파라미터로 255자로 제한 - DB에 추가로 정보를 처리하지않고, 저장된 Data를 단순 요청하는 정도로 사용 - URL에 그대로 query의 이름과 값이 연결되어 표현됨 - ex) http://musi..
- HTML, Javascript 정도는 생활코딩(https://opentutorials.org/course/1703), https://www.codecademy.com/등을 활용하여 개인적으로 깊이있게 공부해야함. DOM & BOM 리뷰 - DOM : document 객체. 열려있는 문서에 대한 모든 정보를 가지고 있는 객체. document, history 등을 가장 많이 사용. - document.getElementsByTagName 을 포함하여 태그네임, Id 등을 이용한 요소에 접근하는 방식은 사실 옛날 문법이다.요즘은 JQuery, Ajax 등 자바스크립트 라이브러리를 사용하여 구현하기 때문에, 추후에 이런 요소들에 대한 공부가 필요하다. 오늘 배우게 될 PHP는 CGI기술에 막대한 영향을 끼..