[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. 웹 페이지에서 로그
웹 페이지에서 사용자 로그를 생성하는 것에 대해서 소개한다.
`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)에서 만든 프로젝트이다.
그림 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: 도도는 도도의 초록누리의 에디터이다. 샵인클루드 족이다.
'소프트웨어(SW) > PHP' 카테고리의 다른 글
[PHP] xampp v3.2.4에서 Oracle-PDO, MySQLi 등 설정하기 (2) | 2019.12.10 |
---|---|
[PHP] Apache 2.4, PHP 7, Oracle 18c Express Edition 윈도우 환경에서 연동하기 (3) | 2019.12.10 |
[PHP] function - UTF8 (한글 완벽 지원 함수 구현) (6) | 2018.08.06 |
[PHP] XSS 소개, 구현 (6) | 2018.08.04 |
[PHP] PHP 5.6 - xFrame 공격 방지하기(Clickjacking 피하기) (5) | 2018.07.31 |