php에서 exec함수로 외부프로그램을 실행하는 것은 무슨 문제가 있나요?

pogusm의 이미지

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: 
첨부파일 크기
Image icon qwe3.png16.64 KB
Image icon qwe4.png20.67 KB
Image icon result(qwe3).png13.64 KB
Binary Data code.tar.gz1.01 KB
sh.의 이미지

편한 쪽으로 하시면 됩니다... 특별한 이유가 없다면요.
extension을 쓰면 에러처리라던가 그런걸 좀 더 쉽게 할 수 있고, 경우에 따라서 배포가 더 편할 수도 있고요. 더 느린 이유는 아무래도 한 번 wrapping되어있고 메모리관리가 php안에서 이뤄지니까 그런게 아닐까 싶습니다.
exec()로 하시면 프로세스가 하나 더 뜨는거니까 좀 찜찜할 때도 있고, 보안 측면이라면... 아주 민감한 상황이라서 exec를 제한한다거나 할 때면 문제가 되겠죠.
memory limit을 관리한다거나 safe_mode같은게 켜져야 하는 상황이라거나 그런게 아니면 편한 방법대로 하시면 될거같습니다,.

pogusm의 이미지

memory limit, safe_mode 같은건 잘 모르겠지만...
두가지의 방법 모두.. 크게 신경쓸 필요는 없는 문제인듯 하군요...
정말 큰 도움되었습니다~ 안심하고 진행할 수 있게 되었네요..
^^;;
감사합니다~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.