노말틱 모의해킹

[1주차 코칭] 블로그 포스팅 주제 줍줍

debugginglog 2025. 4. 10. 00:02

1주차 리뷰

1. 웹서버 동작
2. Client Side Script : 웹 브라우저가 읽고 해석하는 언어들 (HTML, CSS, JavaScript)
3. Server Side Script : Web Application Server, PHP, ASP, JSP, Python, node.js(JavaScript를 실항할 수 있는 엔진, 엄밀히말하면 JavaScript는 Server Side Script는 아니다.)
4. HTTP 프로토콜 : Get과 POST의 차이와 사용방법, 요청과 응답 양식
5. HTTP 응답 status : 200(success), 300(Redirect), 400(Client Error), 500(Server Error)
6. 404 : Not Found, **여친이 없는 것은 여친의 잘못이 아니라 클라이언트인 너의 잘못이다.**
7. 500에러 해결할 때의 팁 : php 코드는 위에서부터 아래로 차례대로 실행된다. 코드를 주석을 걸거나 로그를 찍고 실행하면서 디버깅해봐라.

 

Q&A 세션

Q1. nginx도 웹 서버인 걸로 알고 있는데, 리액트랑 같이 쓰면 동적 페이지를 만들 수 있더라고요. 웹 서버도 동적 페이지를 제공할 수 있는건가요?
    A1. react는 엄밀히 말하면 Client Side Script다. react만으로는 백엔드를 동작하는 것이 아니다. 아마 node.js로 백엔드를 구축했을 것이다. 즉, 웹서버만으로는 동적페이지를 제공할 수 없다.

Q2. termius 랑 vscode 둘다 원격으로 코딩작성을 할수 있던데 로그인페이지 작성할때 두 프로그램 다 사용해야되는건가요?
    A2. termius는 터미널역할을 하는 것이다. 가상머신은 코드가 아니라 하나의 컴퓨터라고 생각하면 된다. 웹서버에 명령을 내리고 싶을 때 ssh로 웹서버에 접속하는 것. putty랑 똑같은 것. vscode는 코딩용 메모장이다. 이걸 통해서 FTP로 연결한다.

Q3. vscode와 vmware ubuntu를 sftp 연결을 서칭하고 그대로 적용해봤는데 All configured authentication methods failed 오류가 떴는데 어떻게 해야할 지 모르겠습니다
    A3. 설정한 인증 방법에 실패했다. sftp는 서버에 업로드 하는 것이다. 권한이 필요하다. 

Q4. CSS도 모의해킹할떄 필요로 하는건가요?
    A4. 직접적으로는 아니지만 해킹 성공률을 높일 수는 있다. 추후 클라이언트 해킹기법 때 사용할 것.

Q5. php 코드로 조건문사용해서 아이디랑 비밀번호를 비교하니까, 서버에 이전기록이 남아서 로그인성공/로그인실패라는 결과가 화면에 남더라고요. 새로고침을 해도요.. 그래서 db연결없이 php코드만을 이용해서 데이터를 세션에 저장하는코드를 만들었어요. 결국 서버가 세션id를 생성하도록 해서 브라우저가 그 id를 전송한거 같더라고요. 그럼 이때 전송되는 세션id값은 쿠키인가요? 그리고 세션이란게 서버안의 공간이라고 하던데 php코드를 해석하는 프로그램이면 was안의 세션이 될까요? 새로고침을 구현해내기 위해서, 세션id로 저장한 키값을 unset으로 초기화했는데, 이 쿠키값? 세션값? 이 초기화되면 나중에 db로 데이터가 넘어갈 수는 있나요??
    A5. 3주차 때 세션, 세션ID, 쿠키 등에 대한 개념을 해줄거다. 세션, 세션 ID, 쿠키 미리 공부해보면 좋을 것 같다.

Q6. ~/webDev 에서 ./dockerCMD & 명령으로  웹 서버를 실행시키는데 web root 경로가 ~/webDev/webApp/이 되는 이유가 무엇인가요?
    A6. 말틱님이 설정해서 그렇다. 이미지를 직접 설정할거면 그렇게 해도 됩니다.

Q7. 저는 wsl2 우분투 사용하는데 vmware나 virtual box 같이 다른것도 해봐야 될까요?
    A7. 저번에도 이야기했는데 가급적 가상머신에 띄어보는게 좋다. wsl2는 반가짜 가상화이다.

Q8. 보안 때문에 GET방식을 안쓰고 POST방식만 사용하는 경우도 있다는데 정확이 어떠한 이유로 이렇게 사용하는 건가용?
    A8. get 방식은 url에 넣어서 사용한거다. 네트워크 스니핑 공격을 하면 쉽게 뺏길수도 있다. POST도 완벽한 것은 아니지만 GET이 더 위험하다. 애초에 사용자가 데이터를 보낼 때는 POST로 보내야한다. GET은 야매다. 

Q9. 공부를 실습을하면서 이해만 하면될까요 아님 실습때 했던 명령어를 외워서 다시 스스로 쳐볼정도로 공부를 해야하나요?
    A9. 외울 필요는 없다. 익히면 된다.

Q10. 작성한 php코드파일을 웹브라우저로 열었을 때 파일이 다운받아지는건 php코드를 해석할 수 있는 php엔진이 없어서 그런 것이 맞을까요? 노말틱님이 중요한 질문이라고 하셔서 제가 이해한 것이 맞는건지 알고싶습니다
    A10. 맞습니다. php면 WAS에게 넘기고 처리한 것을 응답하는게 맞다. 그냥 php가 다운받아진다면 웹서버에 문제가 있다. 

Q11. VM 에 우분투 설치하여 학습하고있습니다 1주차부터 도커라는 용어가 나오는데 비전공자라 검색해봐도 이해가 잘 안됩니다 ㅠㅜ 도커를 왜 사용하는지 어디에 사용하는건지 여쭤봐도 될까요?
    A11. 가상머신은 예전부터 요구사항이 많았다. 도커는 가상인척하는거다. 다른 사람들이 구성해놓은 환경을 그대로 가져올 수 있다. 

Q12. 과제할 때 wsl2는 안된다고 했는데 로컬에서 Docker 컨테이너를 실행하는 것으로 대체해도 앞으로 실습에 문제는 없을까요?
    A12. 아... 제가 wsl2를 굳이 안된다고 했던거는 가상머신을 리눅스를 설치해봐라는 의미였다. 무조건 안되는건 아니다. 로컬에서 docker를 돌려도 상관 없다. 실습에는 전혀 문제가 없을 것이다.

Q13. 위php파일 다운로드 문제 처럼 보통웹사이트에서 zip링크누르면 다운되는대 서버에 zip은열수있는 엔진을 설치하연 브라우져로 열릴수있는건가요?
    A13. 그럼요. php를 서버에 설치하면 웹서버 Apache에 .php는 WAS에게 넘겨라는 설정이 자동으로 적용된다. .zip파일을 앞으로 php로 해석할거야라고 설정하면 똑같이 php처럼 사용할 수도 있다. 예릉 들어 네이버 검색할 경우 https://search.naver.com/search.naver 라는 식으로 .naver는 서버쪽에서 해석할 것이다라고 설정해놓은 것.

Q14. PHP 파일이 실행되지 않고 다운로드되어서 찾아보니까 작업중인 PHP 파일의 경로가 Apache의 기본 웹 루트 디렉토리가 아닌 게 원인일 수 있다고 봤습니다. Apache가 기본적으로 /var/www/html를 웹 루트로 인식한다고 해서 자동 심볼릭 링크를 설정해 webApp 디렉토리 자체를 /var/www/html 안에 자동으로 연결해서 파일이 다운로드 되지 않고 실행되도록 했습니다. 이 방법이 적절한 방법인가요? 아니면 다른 적절한 방법이 있을까요?
    A14. 그럴 수도 있죠. 네 적절한 방법입니다. 잘 하셨어요.

Q15. php 코드에서 db랑 연결시켜야한다면 로그인 입력을 받는 곳과 비교하는 곳의 서버가 달라야하나요,, 그럼 결국 헤더값? 의 주소...?를  리다이렉션해줘야하나요? 비전공이라 용어를 잘 모르겠네요 ㅜㅜ
    A15. 2주차, 3주차 강의에 나올 내용입니다. 이걸 이해했다는 것은 1주차 과제가 여유롭다고 생각이 든다. 

 

블로그글 리뷰

1. 보기 좋게 정리하자. 
2. 일지를 작성하는 것도 나쁘지 않아요. 공부한거 작은거라도 정리해주면 좋아요.
3. gitbook도 좋아요. 보기 좋아요.
4. 과제처럼, 의무처럼 결과물만 올리는 분들. 공부에도 도움이 잘되지 않고 포트폴리오로서도 좋지 않다.
5. 책을 쓴다고 생각했을 때 어떻게 쓸지 고민해보면 좋다.

 

2주차 공부내용

1. Database!
2. SQL

일주일에 한번 진행하는 코칭의 경우에는 플로우가 있는 강연이라기 보다는 Q&A가 대부분을 이룬다. 효율적이지는 않을 수도 있지만 다른 분들의 시선에서 이런 생각을 하는구나. 이런 질문을 하는구나 라고 생각해보면 쏠쏠한 재미가 있다. 위에 적혀있던 것들에서도 앞으로 자세히 파서 포스팅하고 싶은 것들이 생겼다! 일하는 것도 즐겁지만 역시 아무 생각없이 공부하는건 재밌당.
2주차 현재 95명 청취자. 몇명이 살아남을까? 두구두구