php에서 exec함수로 외부프로그램을 실행하는 것은 무슨 문제가 있나요?
글쓴이: pogusm / 작성시간: 목, 2008/08/21 - 10:01오후
php를 공부하는 초보입니다..
GPG(GnuPG) 암호화 관련된 부분을 보고 있는데요..
http://devzone.zend.com/article/3753-Using-GnuPG-with-PHP 해당 사이트를 참조하여
php5에 gnupg.so 확장모듈을 추가하였습니다.
qwe3.php (스샷은 qwe3.png) 은, 확장모듈에서 제공하는 함수로, 임의의 text를 암호화/복호화 한것이고
qwe4.php (스샷은 qwe4.png) 은, exec함수를 이용하여, 직접 /usr/bin/gpg로 위와 동일한 작업을 한것입니다.
초보라서.. 정확하게 동일한 조건(메모리,자원사용양등)을 적용한 결과는 아닌거 같지만...
예상과는 달리, 오히려 exec함수를 이용한 qwe4.php 가 "수행속도"가 훨씬 빨랐습니다 (약 20~30%)
1. 확장모듈을 이용하는것이 훨씬 비효율적인데,
웹에서 GPG암호화/복호화 관련 서비스를 제공하기 위해, 굳이 확장 모듈을 설치할 필요가 있는건가요?
(확장모듈 방법이 수행속도가 느리지만, 보안측면,부하(리소스)측면에서 유리하거나 그런것일까요?)
2. 위 두가지의 방법중 어느 하나를 실제 웹서비스로 제공할때에, 보안측면이라던지, 부하문제라든지에 특별히 문제가 될 소지가 있을까요?
고수분들의 조언 부탁드립니다.
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 16.64 KB |
![]() | 20.67 KB |
![]() | 13.64 KB |
![]() | 1.01 KB |
Forums:
편한 쪽으로 하시면
편한 쪽으로 하시면 됩니다... 특별한 이유가 없다면요.
extension을 쓰면 에러처리라던가 그런걸 좀 더 쉽게 할 수 있고, 경우에 따라서 배포가 더 편할 수도 있고요. 더 느린 이유는 아무래도 한 번 wrapping되어있고 메모리관리가 php안에서 이뤄지니까 그런게 아닐까 싶습니다.
exec()로 하시면 프로세스가 하나 더 뜨는거니까 좀 찜찜할 때도 있고, 보안 측면이라면... 아주 민감한 상황이라서 exec를 제한한다거나 할 때면 문제가 되겠죠.
memory limit을 관리한다거나 safe_mode같은게 켜져야 하는 상황이라거나 그런게 아니면 편한 방법대로 하시면 될거같습니다,.
답변 감사합니다...
memory limit, safe_mode 같은건 잘 모르겠지만...
두가지의 방법 모두.. 크게 신경쓸 필요는 없는 문제인듯 하군요...
정말 큰 도움되었습니다~ 안심하고 진행할 수 있게 되었네요..
^^;;
감사합니다~
댓글 달기