일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C# delegate
- HTML
- 구조체
- vim
- 플러터
- 포인터
- jupyter
- c언어
- Algorithm
- C++
- c# 윈폼
- git
- jupyter lab
- Flutter
- c#
- Unity
- dart 언어
- C언어 포인터
- 다트 언어
- c# winform
- c# 추상 클래스
- 도커
- Houdini
- docker
- 유니티
- 깃
- github
- Data Structure
- Python
- gitlab
Archives
- Today
- Total
목록execv (1)
nomad-programmer
[Programming/C] exec 함수 사용
system() 함수를 호출하면 운영체제는 명령 문자열을 해독해 어떤 프로그램을 어떻게 실행할지 결정해야 한다. 여기에는 문제가 발생한다. 운영체제가 문자열을 해독해야 한다는 점이다. system() 함수는 치명적인 단점을 가지고 있다. 이 함수를 사용하기 쉽지만 보안이 허술하다. 예를 들어, echo ' ' >> reports.log 명령을 내리는데 누군가 다음과 같은 명령을 입력하면 어떻게 될까? echo ' ' && ls / && echo '' >> reports.log 명령행에서 실행할 명령을 문자열 안에 삽입(Injection)하면 프로그램은 입력된 내용이 무엇이든 그대로 실행한다. 이런 모호함을 제거하고 어떤 프로그램을 실행하려는지 운영체제에 정확히 알려주도록해야 한다. "exec()" 함수는..
Programming/C
2020. 6. 19. 03:06