나는 나의 서버를 관리하는데 도움이되는 데몬을 만들고있다. Webmin은 서버에 쉘을 여는 것과 마찬가지로 잘 작동하지만 디자인 한 UI에서 서버 작업을 제어 할 수 있고 일부 기능을 최종 사용자에게 공개 할 수 있기를 원합니다.루비에서 위생 쉘 명령 또는 시스템 호출하기
데몬은 대기열에서 작업을 선택하여 실행합니다. 그러나 사용자의 의견을 수락 할 것이므로 권한이있는 셸 명령에 위험한 것을 주입 할 수 없도록하고 싶습니다.
def perform
system "usermod -p #{@options['shadow']} #{@options['username']}"
end
더 설명하는 요점 : 여기
내 문제 예시 조각의 전형적인 탈출 및 입력의 살균이 경우 충분한 경우 https://gist.github.com/773292난 긍정적 아니에요을하고있는 디자이너, 나는 보안 관련 경험이별로 없다. 나는 이것이 아마도 나에게 분명해야 할 일인 것을 알고있다. 그러나 그렇지 않다!
작업을 만들고 직렬화하는 웹 응용 프로그램이 위험한 텍스트를 작업을 수신하는 권한있는 프로세스로 전달할 수 없도록하려면 어떻게해야합니까? 그것은 당신처럼 보이지 않는 도움
ARB
그래서이 클래스를 노출하고 최종 사용자에게 완전히 필터링하지 않으면 (예 : 사용자 이름으로 "username; rm -rf /") 그림자 해시를 제공한다고 가정 해 봅시다. '/' – arbales
을 제거하는 효과가 있습니다. 인수는 실행 된 프로그램에 직접 전달됩니다. 혼자서 확인할 수 있습니다. 'ruby -e '시스템 * W (ls -l foo; rm -rf /)'' – cam
아를 실행 해보십시오. 그것은 완벽하게 이해가됩니다. 응용 프로그램의 보안을 유지하는 것이 모든 단계에서 위험한 경우가있는 것처럼 간단한 단계와 사실보다 어렵지 않게 자연 스럽 게해야한다는 생각이 있습니다.내가 읽은 적이 없기 때문에 가능성이 높습니다/그것에 대해 많이 알게되었습니다. – arbales