본문 바로가기

개발과제

(38)
[노말틱 모의 해킹 취업반 9주차 개발과제 ] 게시판 만들기(5) - 각 별로 정렬되게 만들기 안녕하세요! 오늘은 날짜별, 추천수, 작성자 이름순으로 각각 정렬을 할 수 있게 선택지를 만들겠습니다! 참고로.. 오늘 만들다 보니 오류가 많이 나와서 이것저것 많이 만졌습니다! 총코드는 맨 밑에 있으니 참고해 주세요! . . . . . . . 우선 리스트를 나오게 해야 되겠죠?
[노말틱 모의 해킹 취업반 9주차 개발과제 ] 게시판 만들기(5) - 좋아요기능 안녕하세요! 이번에는 좋아요 기능과 정렬 기능을 만들어 보겠습니다. 보안 관련해서 코드가 좀 수정 됐습니다! 여기 참고하세요 https://mynameisarke.tistory.com/27 [노말틱 모의 해킹 취업반 개발과제 (3)] 보안 관련해서 보완 하기 안녕하세요! 저는 이태까지 GET방식이든 POST 방식이든 일단 받으면 mysqli escape 시켜서 SQL Injection을 피하려고 했습니다! 근데 이제 스크립트 인젝션을 방지하기 위해 filter_var() 함수을 이용하겠습 mynameisarke.tistory.com 먼저 좋아요 기능 만들어 보겠습니다 . . . . . 일단 게시물 데이터베이스에 좋아요을 따로 저장이 가능한 칼럼을 만들겠습니다. 한 각 사용자 들은 좋아요 도배를 못 하게 ..
[노말틱 모의 해킹 취업반 개발과제 (3)] 보안 관련해서 보완 하기 안녕하세요! 저는 이태까지 GET방식이든 POST 방식이든 일단 받으면 mysqli escape 시켜서 SQL Injection을 피하려고 했습니다! 근데 이제 스크립트 인젝션을 방지하기 위해 filter_var() 함수을 이용하겠습니다. 숫자값이 들어와야 하는데 숫자 이외의 값이 들어오는 것을 걸러내는 필터링 작업해 주는 함수도 있습니다 filter_var() 함수 입니다. 예시 보겠습니다 이렇게 악의적으로 쓸 수 있습니다. 이제 output에는 filter_var 함수로 걸러지고 나오게 해 보았습니다. 이렇게 자바 스크립트가 아예 실행 안 되는 것을 볼 수 있습니다. 실제로 저렇게 html 구문인 ,'," 등 html에 쓰이는 특수기호를 전부 무시합니다. 근데 또 불안하죠 호출은 안전하지만 내부에서 ..
[노말틱 모의 해킹 취업반 9주차 개발과제 ] 게시판 만들기(5) - 날짜 검색 안녕하세요! 오늘은 날짜 지정해서 검색을 할 수 있게 하겠습니다. ** 주소 검색도 그냥 제가 우체국 DB 가져와서 만들겠습니다. API는 내버려두고 따로 php 또 만들겠습니다. 나중에요! ** 이제 슬슬 게시판도 끝나 가고 다 만들고 난 뒤에 마이 페이지, 문의 게시판까지 만든 뒤에 CSS나 다른 언어 이용해서 제 홈페이지를 조금 꾸미겠습니다! 너무 스켈레톤이라고 하네요 ㅎ 아마 늦어도 2주 뒤에는 제 홈페이지 전부 완성 될 것 같습니다. 그 후로 디자인이랑 보안 신경 써서 수정하죠. . . . . . . 시작하죠 먼저 날짜를 지정해서 검색을 할 수 있게 하겠습니다. 뭐.. 이거는 딱히 어렵진 않겠네요! 일단 저는 날짜 선택 가능한 UI을 가져오겠습니다! 그냥 검색 창에 날짜를 적고 검색 누르기엔 너..
[노말틱 모의 해킹 취업반 개발과제 (2)] 보안 관련해서 보완 하기 안녕하세요! 이태까지 제가 만든 웹 사이트에 보안을 좀 더 보완하겠습니다! 오늘은 파일 업로드에 보안을 좀 더 강화하겠습니다 저는 지정한 디렉터리에 저장을 하게 했는데 이는 적절한 보안 조치 없이 그냥 업로드된 파일에 대한 완전한 제어를 허용합니다! 그래서 보안에 취약하겠죠?? 더군다나 텍스트 파일, 압축파일 형식이니 악의적인 파일이 업로드될 수 있죠 그러니 저는 이걸 방지하기 위해 파일 확장자 검증 하겠습니다. 여기서 의문점이 있을 수 있습니다. -따로 MIME 형식에서 허락된 것만 변수로 모은 게 있잖아요?? 맞아요! 저희는 $allowed_mime_types에다가 형식자를 저장했죠? 근데 클라이언트는 파일 형식을. php을 바꿔서 .exe로 바꾸던가 .txt로 바꿔서 올릴 수가 있습니다! 이러면 문..
[노말틱 모의 해킹 취업반 8주차 개발과제 ] 게시판 만들기(4) - 조회수 기능 안녕하세요! 어제는 파일 다운로드를 만들었습니다! 이번에는 조회수 기능을 만들어서 넣겠습니다. 오늘은 간단하게 끝날 것 같아요! . . . . 우선 게시물 데이터베이스에 조회수를 담을 수 있는 칼럼을 만들겠습니다 이제 board.php로 넘어 가겠습니다. 출력할 때 views도 출력하게 하겠습니다! sql문 먼저 손 보겠습니다. 가져올 때 id,title,detail이랑 views도 가져오게요 //작성된 게시물들 조회 문 $sql = "SELECT board_id,id,title,views FROM $db_board"; 그리고 출력되게 하겠습니다 if(mysqli_num_rows($result) > 0) { //게시물 출력 while($row = mysqli_fetch_assoc($result)) { $..
[노말틱 모의 해킹 취업반 8주차 개발과제 ] 게시판 만들기(4) - 파일 업로드 안녕하세요! 이번엔 파일 업로드 하는 기능과 다운로드까지 가능한 기능을 넣겠습니다! 그리고 시간이 되면 조회수 기능까지 넣고요 만약 안되면 내일에 하면 되겠죠! . . . 시작합니다. 일단 저는 파일을 따로 저장 해둘 디렉터리를 만들겠습니다! sudo mkdir -p /path/to/upload/directory 만들겠습니다! 이렇게 따로 디렉토리를 만든 이유는 행여나 웹에서 악영향이 되는 코드가 업로드될 때 웹에서 분리시키기 위함입니다! 그리고 업로드 기능을 먼저 만들겠습니다. 일단 write_board.php에 파일 올릴 수 있는 칸을 만들겠습니다! 이렇게 저는 수정했습니다. form에 enctype="multipart/form-data"는 이 폼에 파일 업로드가 가능하다고 알려주는 겁니다. 일단 확..
[노말틱 모의 해킹 취업반 7주차 개발과제 ] 게시판 만들기(3) - 페이징 안녕하세요! 이번엔 저번에 만든 게시물에서 추가로 기능을 넣겠습니다 바로 페이징 기능입니다! 페이징은 게시물이 너무 많을 때 페이지 별로 나누어서 볼 수 있게 하는 건데요 이걸 한 번 만들어 보겠습니다 . . . . 게시판 페이지인 board.php만 손 보면 되겠네요! 우선적으로 어떡해 코딩할지 생각을 해봅시다. 일단 한 페이지당 얼마나 게시물이 보이게 할지 결정해야 되겠죠? 저는 5개로 하겠습니다 그리고 제 데이터베이스에 몇 개의 게시물이 있는지도 알아야 되겠네요! 그리고.. 총 게시물 개수랑 한 페이지 당 표시되는 개수를 나눠서 페이지가 얼마나 필요한지 알 수 있습니다. 또한 1페이지엔 1번~5번까지 출력 2페이지엔 6~10번까지 출력하게 각 페이지마다 시작 변수를 알 수 있게 코딩을 하면 되겠네요..