전체 글 (33) 썸네일형 리스트형 [시스템프로그래밍] 프로세스, ps, shell, execvp(), fork() 목차 유닉스 쉘이 하는 일 유닉스의 프로세스 모델 프로그램을 실행하는 법 프로세스를 어떻게 만드는가 부모와 자식 프로세스간 통신하는 법 시스템콜 fork exec wait exit command sh ps Program과 Process program: 기계어 명령어와 데이터 덩어리 => 파일, 데이터의 의미 process: 프로그램이 실행되고 있는 메모리 공간과 환경 => processes are programs in action running a program: 프로그램의 명령어들을 메모리에 적재하고, 프로세서(CPU)가 하나씩 실행함 Command ps 현재 process들을 나열 PID : process ID TTY : terminal type, 유저가 로그인하고 있는 콘솔 또는 터미널의 이름(ex.. [시스템프로그래밍] ch.4 pwd 복습 pwd: 디렉토리 트리 형식으로 현재 위치 보여주는 명령어 공부할거 - mkdir, rmdir, chdir - link, unlink, rename, symlink - 디렉토리가 연결되는 방식 - pwd가 어떻게 작동하는가 - Mounting file system mkdir : 디렉토리 만들기 rmdir : 디렉토리 삭제 mv : 디렉토리 이름을 바꾸거나, 파일위치가 이동한다 cd : 다른 디렉토리로 위치를 이동한다 .. : 부모 디렉토리 $ cd ../.. ls -R : 모든 디렉터리와 하위 디렉터리들을 보여준다. chmod -R : 파일의 접근 권한을 바꾼다. 하위 디렉터리 파일의 권한까지 모두 바꾼다 du : disk usage. 디렉터리가 사용한 디스크 블럭의 수를 보여준다. find : 파일 및.. [시스템프로그래밍] ls 명령어 구현 (-al, -alR) Chapter.3: Directories and File Properties : Looking through ls ls의 Main logic opendir while(readdir) print d_name closedir ls -l 파일에 대한 상세정보를 보여준다. 상세정보는 stat()이라는 system call을 통해 얻어올 수 있다. Masking st_mode: 파일 타입과 권한을 의미하는 16-bit. masking st_mode를 위 그림의 mode처럼 rwx 형태로 나타내기 위해서 &연산으로 st_mode의 파일타입과 권한을 각각 decode한다. ls -l 구현 main 함수: 프로그램의 진입점입니다. 사용자로부터 명령행 인수를 받고 주어진 디렉터리 또는 파일에 따라 다른 함수를 호출합니다.. [시스템프로그래밍] File Handling, Files in multi-user environment 3-1. File Handling UNIX File Primitives open - 읽기, 쓰기, 생성을 위해 파일을 열기 create - 빈 파일 생성 close - 열린 파일 닫기 read - 파일에서 정보 가져오기 write - 파일에다 정보 쓰기 lseek - 읽기/쓰기 포인터의 위치를 이동 unlink - 파일 삭제 (빈 디렉터리 삭제 불가) remove - 파일 삭제 (빈 디렉터리 삭제 가능) fcntl - 파일 컨트롤 File Structure 배열에 index 가 있는 것처럼, 파일도 offset 이라는 위치가 있다 원래 파일 내용 뒤에 내용을 추가(appending)할 땐 offset이 EOF이 됨 UNIX File System Model 3가지의 파일 타입이 있다 Regular file.. SSRF(Server-side Request Forgery) SSRF(Server-side Request Forgery) 공격자가 (웹 서비스의 권한으로) 웹 서비스의 요청을 변조하는 취약점 외부의 공격자가 내부망 서비스를 이용할 수 있게 된다 최근의 웹 서비스는 마이크로서비스로 구현하는 추세라서 SSRF 의 파급력이 높다 *마이크로서비스 란? 소프트웨어(애플리케이션)끼리 API 통신을 하는 소규모의 독립적인 서비스 사진을 보면, 사용자가 외부로 노출된 웹 애플리케이션에는 접근할 수 있지만, 웹 애플리케이션 내부의 서비스들에는 접근할 수 없게 되어 있다. 예시로, 백오피스 서비스(관리자 페이지)가 있다. 이러한 내부 서비스는 관리자만 이용할 수 있어야 하기 때문에, 외부에서 접근할 수 없는 내부망에 위치한다. 웹 서비스가 보내는 요청을 변조하기 위해서는, 요청 내.. [dreamhack] 파일 취약점 (image-storage, file-download-1) 첫 번째 문제: image-storage https://dreamhack.io/wargame/challenges/38 image-storage php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. Reference Server-side Basic dreamhack.io 파일 업로드 취약점과 관련한 문제이다. 플래그는 /flag.txt에 있다. index 페이지 index.php Image Storage Home List Upload Upload and Share Image ! Home 을 누르면 인덱스 페이지가 뜨고 List 를 누르면 리스트 페이지가 뜨고 Upload 를 누르면 업로드 페이지가 뜬다는 코드이다 그 외에 별 다른.. #3 h2 데이터베이스 사용해보기 ORM ORM을 사용하면 쿼리 대신 자바 코드로 작성할 수 있다. JPA 란? 스프링부트는 JPA(Java Persistence API)를 사용하여 데이터베이스를 처리한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음이다. JPA는 인터페이스이다. 따라서 인터페이스를 구현하는 실제 클래스가 필요하다. JPA를 구현한 대표적인 실제 클래스에는 하이버네이트(Hibernate)가 있다. SBB도 JPA + 하이버네이트 조합을 사용한다. h2 데이터베이스 나같은 초보가 연습삼아 하는 프로젝트나 로컬 경로에서 쓰는 경량 데이터베이스 라고 합니다 h2 데이터베이스 실행 방법 1) cmd: 'cd + h2 데이터베이스가 설치된 경로' 를 하.. #2 스프링부트 환경 설정 이 글은 교재 보면서 따라하다가 망한 글입니다04 스프링부트 애플리케이션 개발하기4.1 프로젝트 생성두 가지 방법이 있다.1) 인텔리제이 IDEA 에서 프로젝트를 생성하는 방법 - 얼티밋 버전(커뮤니티 버전은 불가)2) Spring Initializr 를 이용해 생성하는 방법 https://start.spring.io/ (스프링 공식 사이트에서 제공) 난 커뮤니티 버전이라서 2번 방법을 사용해야 한다. 1번 방법에서 설정할 수 있는 항목들Name : 프로젝트 이름Location : 프로젝트를 생성할 위치Language : JVM 상에서 동작하는 언어 (JAVA, Kotlin, Groovy)Type : 빌드 툴 (Maven 또는 Gradle)Group : 프로젝트를 정의하는 고유한 식별자 정보 (기업명이.. 이전 1 2 3 4 5 다음