명령 주입이란 무엇이며 명령 주입으로부터 자신을 보호하는 방법은 무엇입니까?
예를 들어 Python에서는 다음과 같이 코딩할 수 있습니다.
import os
domain_name = input()
os.system('ping ' + domain_name)
그런 다음 내 컴퓨터에서 이것을 실행할 때 다음과 같이
google.com
를 domain_name
로 입력할 수 있습니다.보시다시피 Google에서 응답을 받습니다.
그러나 나만큼 친절하지 않은 사람이나 입력하라는 메시지가 표시되면 다른 것을 입력할 수 있습니다. 사용자가 명령줄에서 우리에게 말한 내용만
echo
원한다고 가정해 보겠습니다.ping
의 os.system
를os.system('echo ' + input)
하지만 이번에는 원하는 것
; ls
뒤에 echo
를 추가해 보겠습니다.보시다시피
example.py
인 현재 작업 디렉토리에서 파일을 가져옵니다. 이것은 나쁘다.한 단계 더 나아가
rm
명령을 사용하여 다음과 같은 시스템에서 파일을 제거할 수도 있습니다.hello; rm example.py
보시다시피 이제 파일이 컴퓨터에서 사라졌습니다. 확인하지 않은 상태로 두면 수많은 보안 문제가 발생할 수 있습니다. 이를 방지하기 위해(특히 Python에서)
call
모듈의 subprocess
메서드를 사용할 수 있습니다. 와 같은from subprocess import call
user_input = input()
call(["echo", user_input])
call
함수는 단일 명령만 실행되도록 합니다.위의 Python 예제에 해당하는 언어가 있습니다.
안전한!
( Anime CS Girls )
Reference
이 문제에 관하여(명령 주입이란 무엇이며 명령 주입으로부터 자신을 보호하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brandgrim/what-is-command-injection-and-how-to-protect-yourself-against-it-40p2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)