728x90
300x250

[PHP] OTP와 로그 시스템 (OTP and Log System)

 

root at 127.0.0.1

 

이번에 소개할 것은 OTP와 IP로그 시스템에 관해서 심도적으로 소개하려고 한다.

사용자 인터페이스 관점에서의 OTP는 크게 하드웨어와 소프트웨어로 분류할 수 있다고 가설을 두고 설계하였다.

보안 이슈에서 OTP 시스템이 도입된 지 불과 몇 년 되지 않았다고 본다.

IP 로그와 OTP 시스템의 차이점을 소개하겠다.

 

 


1. OTP란?

 

One time Password라는 용어로 일회성 비밀번호를 생성하는 시스템이라고 부른다.

예를 들면, 사용자가 보유하고 있는 비밀번호 체계로 인증체계를 구현할 때 사용되어진다.

 


2. 사용자 인터페이스 설계하기(Designing the User Interface)

 

사용자 관점에서 "OTP" 인터페이스를 고안하였다.

크게 어렵지 않은 인터페이스 화면으로 디자인 할 수 있다.

 

 

그림 2-1. 소프트웨어 - OTP Generator(OTP 생성기) - 도도(Dodo)

그림 2-1은 소프트웨어 형태의 OTP 생성기이다.

 

 

그림 2-2. 하드웨어 OTP Generator(Hardware OTP Generator) - 도도(Dodo)

 

그림 2-2는 하드웨어 형태의 OTP 생성기이다.

 


3. 웹 페이지에서의 OTP 생성하기(Creating an OTP on a Web Page)

 

아래의 그림은 웹 페이지에서 OTP를 생성하는 것이다.

 

그림 3-1. OTP 생성 구현의 예 - 도도(Dodo)

 

OTP 생성에 관한 소스코드이다. 크게 어렵지 않은 구조로 작성할 수 있다.

 

<?php
/*
 *  Created Date : 2018-08-29
 *  Filename: index.php
 *  Author: Dodo
 */
?>

<?php

function generate(){
    return time() * mt_rand(1, 5);   
}

?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta name="viewport" content="width=320; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
 <title>OTP 발생기(OTP Generator)</title>
 <link rel="stylesheet" type="text/css" href="./css/mystyle.css">
</head>
<body>

<!-- OTP Generator Model -->
<table style="width: 100%;">
 <tr>
  <td style="background-color: #FA5882; height:40px">
   <span style="font-size:20px; color:#FFF; font-weight:bold;">
    OTP Generator(OTP 생성기)
   </span>
  </td>
 </tr>
 <tr>
  <td>
   <input type="text" class="otp" name="otp" value="<?php echo generate(); ?>" style="width:100%;height:30px;">
  </td>
 </tr>
 <tr>
  <td>
   <input type="submit" class="generate" value="생성하기" onclick="window.location.reload();">
  </td>
 </tr>
</table>

</body>
</html>

 

 

 

영상 1. OTP 생성기 / 시연 - 도도(Dodo)

 


4. 웹 페이지에서 로그

 

웹 페이지에서 사용자 로그를 생성하는 것에 대해서 소개한다.

 

CREATE TABLE IF NOT EXISTS `log` (
      `id` int(11) NOT NULL auto_increment,
      `createDate` datetime NOT NULL,
      `subject` text NOT NULL,
      `ip` text NOT NULL,
      PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

데이터베이스의 테이블 설계는 다음과 같이 간단한 구조로 설계할 수 있다.

 

 

위의 코드를 실행하면 아래처럼 반응하는 것을 볼 수 있다.

 

 

그림 4-1. 웹 페이지에서의 로그 - 도도(Dodo)

 

 

영상 2. 로그 생성 반응 시연 - 도도(Dodo)

 


5. 아파치 웹 서버

 

아파치 웹 서버는 아파치 파운데이션(Apache Foundation)에서 만든 프로젝트이다.

http://www.apache.org

 

 

그림 5-1. 아파치 소프트웨어 재단(Apache Software Foundation) - 도도(Dodo)

 

                   표 1. 영어, 한글로 읽어보기

 

번호

영어 단어

한글 읽기(Hangul)

1

Open

개방, 열다

오픈

2

Software

소프트웨어

소프트웨어

3

Soft

부드러운

소프트

4

Innovation

혁신

이노베이션

5

Community

커뮤니티(공동체)

커뮤니티

6

Consider

고려하다,
중히 여기다

컨시더

 

 

그림 5-2. 아파치 프로젝트 소개 - 도도(Dodo)

 

                                                                         표 2. 영어, 한글로 읽어보기

 

번호

영어 단어 또는 문장

한글 읽기

1

What is the Apache HTTP Server Project?

아파치 HTTP 서버 프로젝트는 무엇입니까? 

 왓 이스 더 아파치 에이치티티피

서버 프로젝트?

2

The Apache HTTP Server Project is a collaborative software development

Apache HTTP Server 프로젝트는
공동 소프트웨어 개발입니다.

디 아파치 에이치티티피 서버 프로젝트 이스 어 콜라브레이티브 소프트웨어 디벨러프멘트.

3

Collaborative

공동

콜라보레이티브

4

effort

노력

에포트

5

Mailing Lists

메일링 리스트

메일링 리스트

6

Trunk (dev)

 트렁크 (개발)

뜻(의역): 저장 보관소

트렁크 (디브)

 

 


6. 맺음글(Conclusion)

 

OTP 시스템과 로그 시스템에 대해서 살펴보았다.

 


7. 참고자료(Reference)

 

1. OTP, Last Modified , Accessed by 2018-08-29, https://ko.wikipedia.org/wiki/일회용 비밀번호

2. PHP: mysql_query, Last Modified, Accessed by 2018-08-29, http://php.net/manual/en/function.mysql-query.php

3. PHP: mysql_set_charset - Manual, Last Modified, Accessed by 2018-08-29, http://php.net/manual/en/function.mysql-set-charset.php

4. Welcome to The Apache Software Foundation!, Last Modified, Accessed by 2018-08-29, https://www.apache.org/

5. About the Apache HTTP Server Project - The Apache HTTP Server Project, Last Modified, Accessed by 2018-08-29, http://httpd.apache.org/ABOUT_APACHE.html

 

Editor: 도도는 도도의 초록누리의 에디터이다. 샵인클루드 족이다.

반응형

+ Recent posts