2011-09-11 5 views
1

gcc 컴파일러로 c/C++ 프로그램을 온라인으로 컴파일하려고합니다. 사용자가 c/C++ 코드를 입력하면 임시 파일 (temp.cpp)을 작성한 후 온라인으로 c/C++ 컴파일 [보안 문제]

exce('gcc temp.cpp');
php 함수로 컴파일합니다. 이후에도 exce() 함수로 실행합니다. 어떻게 지금 C/C++ 코드가 내 웹 사이트를 손상시키지 않는지 어떻게 알 수 있습니까? 어떻게 파일, 데이터베이스, 프로세스를 죽이는 것을 막을 수 있습니까? C/C++ 프로그램으로 수행 할 수 있습니까?

+1

파일을 실행할 계획이라면 C++이나 gcc에 알지 못하는 광범위한 화이트리스트 또는 라이브러리 제외 기능이 없으면 대단히 위험합니다. 컴파일 된 프로그램을 chroot jail 또는 다른 것으로 실행해야합니다. 실행중인 운영 체제 (그리고 서버에 대한 루트 액세스 권한이 있는지 여부)에 따라 serverfault.com 또는 linux.stackexchange.com에서 더 적합 할 수 있습니다. –

+1

매우 조심스럽고 많이 생각하고 있고, b) 매우 작고 제한된 라이브러리 세트 만 허용해야합니다. 그러나 그 이상으로 고려해야 할 것이 많이 있습니다. –

+1

[유해 C 소스 파일 검사?] (http://stackoverflow.com/questions/6810322/harmful-c-source-file-check) 중복 가능 –

답변

6

서버에서 컴파일 된 프로그램을 실행하지 않는 한 괜찮습니다.

서버에서 프로그램을 실행하면 문제가 될 수 있으므로 샌드 박스해야합니다. 그들이 어떻게하는지 보려면 codepad's about page을보십시오.

+0

멋진 링크! ---- –