본문 바로가기
IT지식/개발

[책] 생활코딩! PHP+MySQL 후기

by 7$ 2020. 2. 17.

제가 갖고있는 PHP 책은 [PHP + MySQL 웹 개발 마스터 북] 1권과 이번에 구매한 [생활코딩! PHP+MySQL] 책 1권이 있는데 마스터 북은 아직 다 보지 못하였고 생활코딩 책은 모두 보았습니다.

 

두 책 중 생활코딩 책은 좀 더 입문자에게 적합하였습니다. 

 

생활코딩! PHP+MySQL

이 책에서 만드는 웹 프로그램은 아주 기본적인 등록, 수정, 삭제 형태의 게시판입니다. 딱 PHP와 MySql 그리고 게시판을 만들기 위한 최소한의 HTML만 사용합니다. 군더더기 없이 필요한 것만 설명되어있습니다. 덕분에 책장 술술 넘어갑니다. 문과 출신 이고잉님 답게 설명이 이해하기 쉽고 재미있습니다. 예시를 들어 어떤 상황에서 사용하는지 설명해주어 더욱 좋았습니다.  PHP의 원리, 개발 환경에대한 설명, 보안, 필터링, 이스케이핑 등의 중요한 부분도 챙겨줍니다.

챕터 마다 QR코드가 있고 동영상 강의로 연결됩니다. 동영상 강의는 10분 내외로 짧게 이루어져있어 지루하지 않습니다. 무엇보다 게시판을 만들기 위해 사용하는 함수만 설명되어있고, 곧바로 게시판을 만드는 실습으로 진행되어 재밌습니다. 

 

 

*중요부분

PHP 환경설정 php.ini 

display_errors=On // 개발 중 에러 문구 확인. 서비스 시에는 Off 시켜야 함

opcache.enable=0 // 캐시 사용 여부(성능)

 

1 = 켜져있음 // PHP가 같은시간동안 더 많은 웹페이지를 만들어낼수 있다. 하지만 PHP 파일 수정 시 즉시 반영이 아닌 30초 ~ 1분 후 웹 페이지에 반영됨.

 

0 = 꺼져잇음 //개발시에는 0으로 놓아야 즉시 반영됨.

 

apache2/logs/error.log, access.log

서버 접근 로그를 확인 할 수 있다.

 

보안xss 크로스 사이트 스크립팅 공격 방지.

htmlspecialchars() : 특수문자를 HTML 엔티티로 변환하여 스크립트 실행을 방지한다.

 

파일 경로를 보호하는 방법을 익힌다.

basename() 파일 경로로 "../password.txt" 이 들어와도 파일 이름만 추출되어 외부의 파일 경로 조작을 방지한다.

 

SQL 보안필터링

sql 주입 공격의 원리

Jess's 를 입력을 하면  '는 SQL문의 ' 와 중첩이 될 수 있다. '' 사이에 DROP TABLE... 을 기입하면 악의적으로 테이블을 삭제시킬 수도 있다.

 

mysqli_real_escape_string()

입력을 통해 들어온 ', ", \ 등의 문자를 NUL (ASCII 0), \n, \r, \, ', ", and Control-Z 등으로 변경해 준다. 

 

 

 

 

추가: PHP + MySQL 웹 개발 마스터 북

이 책은 로그인 부터 회원관리까지의 웹 애플리케이션을 만듭니다. 일본 책 답게 아주 상세한 설명을 포함하고 있습니다. 설명도 많고 예제도 많지만 입문자에겐 이것이 머리를 더 복잡하게 만들 수 있습니다. 저 또한 설명을 읽다가, 예제를 따라 하다가 지쳐서 책을 마무리 하지 못했습니다. 예를 들면 이 책의 앞 부분은 숫자, 문자, 변수, 조건문, 반복문, 함수, 파일처리, 배열, 상속, 클래스, 체크박스, 라디오 버튼, 쿠키, 세션, 이미지, 메일  등의 기초와 기본에 대한 설명을 담고 있습니다. 이렇게 앞에서 부터 차근차근 책을 넘기다 보면 재미가 없습니다ㅜㅜ 빨리 눈에 보이는 결과를 만들고 싶은데 언제 로그인 화면을 만드는지 모르겠습니다. 책의 앞 부분은 넘기고 바로 로그인 만드는 화면 부터 넘어갈 걸 그랬네요. 아직 제 수준에서 상속, 클래스까지 만들어 사용할 일은 없지만 '이런 것들이 있구나' 하고 넘기면 되겠지요. 조금 더 실력을 쌓은 다음에 책을 펼쳐야겠습니다.