이동 중에도 프로세스를 실행하고 사용자가 요청과 함께 제공 한 쿼리 문자열의 일부 입력을 제공하여 HTTP 요청을 처리하는 작은 애플리케이션이 있습니다. 원격 실행에 대해 해당 입력을 필터링하는 가장 좋은 방법은 무엇인지 궁금합니다. 예를 들어 PHP 대안은 다음과 같습니다. http://php.net/manual/en/function.escapeshellarg.phpGolang으로 안전한 명령 실행 (원격 실행을 피하십시오)
지금은 입력이 유효한 URL이어야 입력을 쉽게 처리 할 수 있지만 일반적으로 일반 필터를 사용하는 것이 좋습니다.
[os/exec] (http://golang.org/pkg/os/exec/)를 사용하는 경우 쉘을 통과하지 않아야하므로 쉘 이탈을하지 않아도됩니다. 입력을 매우 조심스럽게 검증해야합니다! –
그래, os.exec를 사용하면 알 수없는 쉘을 통과하지 못한다는 것을 알지 못했습니다. 그러나 "명령 && 악의적 인"과 같은 무언가가 예를 들어 작동하지 않아도? – Feras
본질적으로 php는 프로세스 실행을 쉘 (sh 호환 가능 쉘에도 보장되지 않음)에서 오프 로딩하고 안전하게 만드는 작업을 수행함으로써 잘못되게 만듭니다. 거의 모든 다른 언어의 os 라이브러리는 커널에 직접 호출하여 암묵적으로 주입 공격을 피합니다. – krait