728x90
300x250
[PC활용] APMSetup 6 - 설치

 

이번에 소개할 것은 윈도우 환경에서 Apache + PHP + MySQL을 사용할 수 있는 프로그램이다.

비록 오래되긴 했지만 유용하다.

APMSetup 프로젝트에 대해서 내가 알고 있는 것은 꽤 오래된 프로젝트로 알고 있다.

 

한참 전성기에는 홈페이지도 구축했던 프로젝트로 기억한다.

몇 년전에는 웹서버를 운영한다는 것은 정말 어려운 일이었다. 지금은 조금만 하면 가벼운 웹사이트는 오픈소스 등을 활용하여 쉽게 구축할 수 있다.

 

웹 사이트를 구축하기 위해서는 제일 중요한 것으로 웹 서버가 존재해야 한다.

 

사용 프로그램(Using Program): 윈도우 10, APMSetup 6

 


1. APMSetup 6

 

http://kldp.net/apmsetup 사이트에 접속한다.

Release를 누른다.

 

 

 

그림 1-1. APMSetup 설치, 도도(Dodo)

 

2907-APMSETUP6_2009041200을 기준으로 소개하겠다.

 

그림 1-2. APMSETUP 6 다운로드 받기, Kldp

 

지금 보는 이러한 사이트를 미러링 사이트 또는 파일 사이트라고 한다.

anonymous(익명의 계정)으로 ftp 사이트 등을 열어놓는 곳들이 있다.

물론 이건 FTP 사이트는 아니고, 웹 사이트이다.

 

 

그림 1-3. APMSETUP 6 다운로드 받기, Kldp

 

 

 

그림 1-4. APMSETUP 6 언어팩 설정

 

 

 

그림 1-5. APMSETUP 6 설치, 도도(Dodo)

 

설치 마법사가 뜨면 "다음 >" 버튼을 누른다.

 

 

그림 1-6. APMSETUP 6 설치, 도도(Dodo)

 

실제 프로그램은 APMSETUP6이 아니고, Apache, MySQL, PHP 따로 존재한다.

 

 

그림 1-7. APMSETUP 6 설치, 도도(Dodo)

 

광고 등의 메시지가 나온다.

선택사항이다. 다음을 누른다.

 

 

 

그림 1-8. APMSETUP 6 설치, 도도(Dodo)

 

APM_Setup 6 for Win 32(required)는 필수적으로 체크되어있다.

CUBRID 2008은 CURRID라는 오픈소스 데이터베이스가 있다.

이의 사항을 확인하고 다음을 누른다.

 

 

 

 

그림 1-7. APMSETUP 6 설치, 도도(Dodo)

 

설치 경로를 선택하고 설치를 누른다.

 

 

그림 1-8. APMSETUP 6 설치마법사, 도도(Dodo)

 

APMSetup의 설치 진행 마법사가 진행된다.

지금 장면은 PhpMyAdmin(오픈소스: PHP기반)도 함께 설치되는 모습이다.

 

 

그림 1-9. 방화벽 동의, 도도(Dodo)

 

웹 서버를 사용하면, 포트 등으로 인해 방화벽 해제를 요구한다.

확인을 누른다.

localhost에서 사용할 경우에도 방화벽 해제는 중요하다.

 

 

그림 1-10. 설치 완료, 도도(Dodo)

 

설치가 완료되었다.

아래의 하단에 보면 APMSetup의 아이콘이 뜬다.

녹색으로 된 아이콘에 마우스를 오른쪽 버튼을 누르면 아래와 같이 메뉴가 뜨는 것을 확인할 수 있다.

 

 

그림 1-11. 하단 아이콘 (APMSetup), 도도(Dodo)

 

그림 1-12. APMSetup 6 프로그램

 

그림 1-12는 APMSetup 6이라는 프로그램을 말한다.

Apache Foundation의 Apache 2.2, Oracle의 MySQL Community Edition, PHP.net의 php 5.2가 담겨져 있다.

 

이 프로그램들을 관리하고 실행하는데 도와주는 프로그램이 APMSetup이다.

물론 APMSetup 6이 없어도 Apache 2.2, MySQL, PHP 5.2는 각각 독립적으로 실행이 가능하다.

 

 

 

그림 1-13. Localhost 웹 사이트, 도도(Dodo)

 


2. 참고자료(Reference)

 

1. "/apmsetup/release", kldp, https://kldp.net/apmsetup/release/, Accessed by 2018-08-05

반응형
728x90
300x250

[PHP] PHP 5.6 - 시큐어 코딩하기(SQL Injection)

 

실제 작성한 코드를 통해서 소개한다.

외부의 사용자가 스크립트 언어를 삽입하여 SQL 문장으로 공격하는 문제 등이 존재할 수 있다.

 

이를 막는 방법에 대해서 소개한다.

 

대상: PHP Version 5.6.36

         (선택) mysqlnd 5.0.11-dev - 20120503 

 


1. SQL 문장 변형이 일어나기 쉬운 코드

 

          /*
          $query = 'SELECT password FROM board_' . $boardName . '_comment ' .
                    'where id = \'' . $comment->getID() . '\' ' .
                    'and password = \'' . $password . '\'';
         */ // SQL Injection 미점검  

 

그림 1-1. 문자열로 생성하는 SQL 문장

 

이런 코드로 프로그래밍을 작성하면 다음과 같은 일들이 생길 수 있다.

 

 SELECT password FROM board_{임의의 질의값}_comment where id = {랜덤아이디, 스크립트} and password = {랜덤비밀번호 대칭};

 

그림 1-2. SQL 문장으로 공격하기

 

예를 들어서 화면을 아래처럼 꾸몄다고 가정하자.

 

번호

{id}

 

글 제목

{subject}

 

조회수

{count}

 

 

 

 

 

 

 

 

그림 1-3. UI - View.php

 

예를 들면, 그림 1-3에서 {id}의 내용에 불법적인 스크립트 등을 삽입하여 공격할 수가 있다.

이러한 것을 예방하려면, 아래의 코드처럼 개선하면 좋을 것으로 보인다.

 


  public function isPasswordComment($boardName, $comment){
  
          $link = mysql_connect($this->conn->getHost(),
                                          $this->conn->getUser(),
                                          $this->conn->getPw()) or
                                          die('Could not connect' . mysql_error());
                       
          mysql_set_charset('utf8', $link);
  
          mysql_select_db($this->conn->getDBName()) or die('Could not select database');

          mysql_query("set session character_set_connection=utf8;");
          mysql_query("set session character_set_results=utf8;");
          mysql_query("set session character_set_client=utf8;");
   
          $password = $this->crypt->decrypt( $comment->getPassword() );

         

          /*
          $query = 'SELECT password FROM board_' . $boardName . '_comment ' .
                    'where id = \'' . $comment->getID() . '\' ' .
                    'and password = \'' . $password . '\'';
         */ // SQL Injection 미점검  
  
          $query = sprintf("SELECT password FROM board_%s_comment WHERE `id` = '%s' AND " .
                     "`password` = '%s'",
                    mysql_real_escape_string($boardName),
                    mysql_real_escape_string($comment->getID()),
                    mysql_real_escape_string($password));       // SQL Injection 점검

  
           $result = mysql_query($query, $link) or die('Query failed: ' . mysql_error());

 

           // DB Article
           $password = "";
           while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                  $password = $row['password'];
           }
  
           // Free resultset
           mysql_free_result($result);
  
           // Closing connection
           mysql_close($link);
  
           if ( empty($password) )
               return false;
           else
               return $password;
  
 } 

 그림 1-4. 개선된 코드(SQL Injection)

 


2. 참고자료(Reference)

 

1. SQL Injection, PHP.NET, http://php.net/manual/en/security.database.sql-injection.php, Accessed by 2018-07-31

반응형
728x90
300x250

[Linux] Centos 5.3(32bit), Ubuntu 9.04(64bit) - Apache 2.x + PHP 5.3 + MySQL, 라이브러리 설치하기

태스트 환경1 :

운영체제 : Centos 5.3(32bit)
CPU : AMD Athlon 64 x2 3600
RAM : 2GB

태스트 환경2 :
운영체제 : Ubuntu 9.04(64bit)
CPU : Atom 230 x2
RAM : 1GB


필수 사용 라이브러리 :


Libmcrypt(암호화 라이브러리)


다운로드를 받을만한 위치로 이동합니다.


다운로드 받기 :
http://www.mysql.com (MYSQL 홈페이지)
ftp://ftp.neowiz.com/pub/apache/httpd/httpd-2.2.11.tar.gz
ftp://ftp.neowiz.com/pub/languages/php/

미러링 서버 제공 : 네오위즈

다운로드 받기


wget 주소 (MySQL 5.x 버전) 다운로드
tar xvfz mysql-5.1.version.tar.gz                  (압축 풀기)

wget ftp://ftp.neowiz.com/pub/apache/httpd/httpd-2.2.11.tar.gz      (Apache 2.2.11) 다운로드
tar xvzf httpd-2.2.11.tar.gz                       (압축 풀기)

wget ftp://ftp.neowiz.com/pub/languages/php/     (Php-5.2.10) 다운로드
tar xvzf php-5.2.10.tar.gz                        (압축 풀기)



 


 


 


 


 


 


 
(기타 라이브러리 재 연동)
/usr/local/php/bin/pear upgrade-all
/usr/local/php/bin/pear install DB File Mail Mail_Mime
/usr/local/php/bin/pear install MDB2 MDB2_Driver_mysql MDB2_Driver_mysqli
/usr/local/php/bin/pear install HTTP_Request XML_RPC


최종 수정 : 2009년 9월 22일

반응형
728x90
300x250

[PHP/GPLv2] PHP 시스템 정보 확인(sysinfo) - 수정(PHP 5.2 지원)

몇 가지 오류가 수정된 파일입니다.
한글로 번역한 파일인데, 오류가 있어서 수정하였습니다.

[첨부(Attachments)]
sysinfo.2009.07.30.tar.gz

비록 오래된 버전이긴 하나 태스팅을 해보면 동작할 것입니다.
코드를 다룰 수 있다면 수정해서 사용해도 됩니다.
반응형

+ Recent posts