CGI 프로그램에서 DB 접속 부분

zflute의 이미지

PHP나 펄 등으로 CGI 프로그램을 작성해서 DB에 접속하는 프로그램이 있다고 가정을 합시다. 일반적인 경우 브라우저에서는 DB 접속을 위한 계정과 암호를 알 수 없겠지만, 쉘 계정을 가지고 있는 사람은 그 파일을 열어 볼 수 있으니깐 DB접속 계정과 암호를 알아낼 수 있게 됩니다.
그렇다면, 웹 호스팅이나 학교 서버와 같이 여러 사람이 함께 사용하는 서버일 경우에 다른 계정 사용자(관리자 제외)가 DB 계정 정보를 알 수 없도록 하는 방법이 없을까요?

ㅡ,.ㅡ;;의 이미지

zflute wrote:
PHP나 펄 등으로 CGI 프로그램을 작성해서 DB에 접속하는 프로그램이 있다고 가정을 합시다. 일반적인 경우 브라우저에서는 DB 접속을 위한 계정과 암호를 알 수 없겠지만, 쉘 계정을 가지고 있는 사람은 그 파일을 열어 볼 수 있으니깐 DB접속 계정과 암호를 알아낼 수 있게 됩니다.
그렇다면, 웹 호스팅이나 학교 서버와 같이 여러 사람이 함께 사용하는 서버일 경우에 다른 계정 사용자(관리자 제외)가 DB 계정 정보를 알 수 없도록 하는 방법이 없을까요?

C로 작성하면 알아내기힘들겠죠.


----------------------------------------------------------------------------

thkim86의 이미지

요즘 대부분의 웹서버에서는 Database 접속을 위해서 Connection Pool을 지원합니다.

이것을 사용하는 것은 여러가지 목적이 있겠지만 가장 큰 이유는 성능입니다.
보통 디비 플그램에서 가장 속도에 지장을 주는 것이 데이타베이스에 접속하는 부분입니다. 몇초씩 잡아먹는데 웹플그램이 페이지 하나 보여줄 때 마다 접속해서 끊고 하는 보통 방법을 쓰면 무지 느리게 되고 DBMS와 웹서버에 부담을 주게 됩니다.

두번째는 비용입니다. 데이타베이스는 유저당 비용을 책정해서 무지 비쌉니다. Connection Pool은 몇개의 connection을 계속 공유할 수 있으므로 비용을 절감할 수 있습니다.

그 외에도 zflute 님이 원하시는 것처럼 데이타베이스 계정과 암호를 숨길 수 있습니다. Connection Pool을 설정하는 것은 웹서버나 Web Logic등 솔루션의 admin 계정으로만 보통 할 수 있고 그것을 이용하는 프로그램들은 만들어진 connection pool을 이용만 하기 때문에 그 효과가 발생합니다.

그외에도 많은 장점이 있습니다.

성능 모니터링 등등..

요즘은 왠만한 웹서버에서는 거의 지원하는 것으로 알고 있으니 한번 이용해보세요.

redbaron의 이미지

zflute wrote:
PHP나 펄 등으로 CGI 프로그램을 작성해서 DB에 접속하는 프로그램이 있다고 가정을 합시다. 일반적인 경우 브라우저에서는 DB 접속을 위한 계정과 암호를 알 수 없겠지만, 쉘 계정을 가지고 있는 사람은 그 파일을 열어 볼 수 있으니깐 DB접속 계정과 암호를 알아낼 수 있게 됩니다.
그렇다면, 웹 호스팅이나 학교 서버와 같이 여러 사람이 함께 사용하는 서버일 경우에 다른 계정 사용자(관리자 제외)가 DB 계정 정보를 알 수 없도록 하는 방법이 없을까요?

보통 쉘 계정을 공유하지 않는 이상 함부로 보기 힘들듯 한데요..

chmod 600 정도로 하거나 디렉토리에 접근 권한을 제한 하는 정도..

elflord의 이미지

PHP같은 경우. 파일내용을 열어도 알아보지 못하게 암호화하는
프로그램이 있습니다. 그걸로 PHP파일을 처리해놓으시는건
어떠실런지...


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 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>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 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>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 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>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.