KR20130077908A - 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치 - Google Patents

폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20130077908A
KR20130077908A KR1020110145375A KR20110145375A KR20130077908A KR 20130077908 A KR20130077908 A KR 20130077908A KR 1020110145375 A KR1020110145375 A KR 1020110145375A KR 20110145375 A KR20110145375 A KR 20110145375A KR 20130077908 A KR20130077908 A KR 20130077908A
Authority
KR
South Korea
Prior art keywords
ruleset
verification code
verification
web page
input value
Prior art date
Application number
KR1020110145375A
Other languages
English (en)
Other versions
KR101579601B1 (ko
Inventor
김태곤
오봉근
Original Assignee
엔에이치엔비즈니스플랫폼 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔비즈니스플랫폼 주식회사 filed Critical 엔에이치엔비즈니스플랫폼 주식회사
Priority to KR1020110145375A priority Critical patent/KR101579601B1/ko
Publication of KR20130077908A publication Critical patent/KR20130077908A/ko
Application granted granted Critical
Publication of KR101579601B1 publication Critical patent/KR101579601B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents

Abstract

본 발명은 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 장치에 대한 것으로, 상기 폼 입력값 검증에 사용되는 룰셋이 유효하게 정의되어 있는지 여부를 검증하는 룰셋 판독부, 상기 검증된 룰셋을 제1 검증 코드로 변환하여 상기 폼을 포함하는 웹페이지에 추가하는 웹페이지 변환부, 상기 검증된 룰셋을 제2 검증 코드로 생성하는 폼 입력값 검증코드 생성부 및 상기 제2 검증 코드에 기초하여 상기 폼 입력값을 검증하는 검증부를 포함하고, 상기 제1 검증 코드는 클라이언트 측에서 상기 폼 입력값의 검증에 이용되는 것을 특징으로 한다.

Description

폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치{METHOD AND DEVICE FOR VERIFYING INPUT VALUES IN THE FORM BY BOTH CLIENT AND SERVER SIDE}
본 발명은 폼 입력값에 대한 클라이언트 및 서버측 이중 검증을 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 클라이언트 및 서버측 모두에서 동일하게 적용하여 보다 편리하게 이중 검증을 수행할 수 있도록 하는 이중 검증을 위한 방법 및 장치에 관한 것이다.
컴퓨터 기술의 발전 및 인터넷의 광범위한 보급을 통해 컴퓨터 등의 단말 장치를 통한 인터넷상에서의 정보 검색이 시간과 장소에 구애받지 않고 가능하게 되었다.
인터넷상에서의 정보 검색은 소위 웹브라우저(Web Brower)라고 불리우는 문자, 영상, 음향 등 다양한 형태로 저장되어 있는 웹(WWW:World Wide Web) 서비스 정보를 이용할 수 있는 프로그램을 이용하는 것이 일반적이며, 정보 검색 과정에서는 검색어를 입력하거나 회원 가입을 수행하는 등 사용자의 정보를 입력 받기 위해 폼(Form)이라 불리우는 HTML(HyperText Markup Language)의 특정 태그(tag)를 사용하는 것이 필수적이다.
하지만, 사용자의 실수에 의해 또는 의도적으로 폼에서 요청하는 정보와는 상이하거나 잘못된 값들이 폼에 입력될 가능성은 상당히 높으며, 이 경우 정확한 값을 기초로 소정 정보를 제공하도록 설계된 서버측에서 상기 상이하거나 잘못된 값들에 의해 오류를 일으킬 수 있다.
도 1은 일반적인 웹페이지에서 사용자의 폼 입력값을 수신하기 위한 예시적인 화면을 나타내는 도면이다. 도 1을 참조하면, 사용자가 회원 가입을 진행하는 경우 필요한 사용자의 정보를 입력받기 위해 사용자가 입력할 수 있는 폼을 제공하며, 이 중 특정 필드(field)에 대해서는 입력이 제한되거나 또는 입력 방식이 한정될 수 있다. 예컨대, 상기 도 1의 "아이디"에 해당하는 필드의 경우에는 "4-12자리의 영문 소문자, 숫자만 사용할 수 있습니다"라고 하여 만일 사용자가 아무 값도 입력하지 않거나, 3자리 이하 또는 15자리 이상의 값을 입력하거나, 또는 영문 대문자나 한글 또는 특수 문자를 입력하게 되는 등의 경우 폼에서 요청하는 정보와는 상이하거나 잘못된 값에 해당하게 되어, 이대로 폼 입력값을 서버로 전송하는 경우 서버측에서 오류가 발생할 가능성이 존재한다.
마찬가지로, "비밀번호"에 해당하는 필드의 경우에는 "6-15자리의 영문, 숫자, 특수문자의 조합으로 만들어주세요"라고 하여 이러한 규칙을 벗어나게 되는 경우 폼에서 요청하는 정보와는 상이하거나 잘못된 입력값에 해당하게 된다.
도 1에서 확인할 수 있는 바와 같이, 폼에서 입력 받고자 하는 다양한 다수의 필드는 서로 다른 다양한 규칙이 적용될 수 있는바, 사용자가 폼의 모든 필드에 대해 개개의 규칙에 맞도록 입력값을 정확히 입력할 수 있도록 기대하는 것은 어려운 일이며, 따라서 사용자가 폼의 모든 필드에 대해 개개의 규칙에 맞도록 입력값을 입력하였는지를 검증하기 위한 수단이 필요하다.
한편, 폼 입력값의 타당성을 검증하기 위한 기술로서 대한민국공개특허공보 제10-2003-0045883 웹을 이용한 네트워크 장비 관리 시스템의 입력값 검사 방법(엘지전자 주식회사)(문헌 1)에는 웹 브라우저를 통해 관리자가 입력한 장비 설정값을 HTML 페이지의 자바 스크립트로 작성된 입력값 검사 루틴에서 타당성을 검사하도록 한, 클라이언트 측에서 자바 스크립트를 이용하여 폼 입력값의 타당성을 검증하는 방법이 개시된다. 그러나, 문헌 1에 의한 방법은 사용자에 의해 쉽게 회피될 수 있다는 문제점을 갖는다. 예를 들어, 사용자가 웹 브라우저상에서 자바 스크립트 사용 옵션을 해제하는 경우 쉽게 무력화될 수 있으며, 또는 악의의 사용자가 정당한 웹페이지와 유사한, 하지만 폼 입력값 타당성 검증을 수행하는 자바 스크립트를 제외한 웹페이지를 생성하여 폼 입력값을 서버로 전송하는 경우에도 문헌 1에 의한 방법은 무력화되게 된다.
따라서, 사용자가 입력하는 폼 입력값의 검증은 서버측에서도 수행되어야 할 필요성이 있다. 하지만, 종래 기술에 있어서 폼 입력값의 검증을 수행하는 프로그램 코드는 클라이언트측 및 서버측 코드가 서로 독립적이어서 별개로 작성되어야 하는 불편함이 있어 왔으며, 특히 코드 완성 후 웹페이지 수정이나 확장 등 변경 사항이 있는 경우에도 클라이언트 및 서버측 코드를 각자 변경하여야 하는 문제점이 존재한다.
따라서, 클라이언트 및 서버측에서 각각 별도로 폼 입력값 검증을 위한 코드를 작성하여야 하는 불편함을 해소하고, 그 변경이나 수정이 간편한 새로운 방식의 이중 검증을 수행할 수 있는 방법이 요구되고 있다.
[문헌 1] 대한민국공개특허공보 제10-2003-0045883 웹을 이용한 네트워크 장비 관리 시스템의 입력값 검사 방법(엘지전자 주식회사) 2003.06.12.
본 발명의 목적은 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 클라이언트 및 서버측 모두에서 동일하게 적용하여 보다 편리하게 폼 입력값의 클라이언트 및 서버 이중 검증을 수행할 수 있도록 하는 방법 및 장치를 제공함에 있다.
또한, 본 발명의 다른 목적은 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 클라이언트 및 서버측 모두에서 동일하게 적용하여 웹페이지의 변경 및 확장시에도 보다 유연하게 대처할 수 있는 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치를 제공함에 있다.
또한, 본 발명의 또 다른 목적은 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 통해 각 필드별로 서로 다른 설정이 가능하도록 하여 모든 형태의 폼에 적용이 가능한 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치를 제공함에 있다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특유의 효과를 달성하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 장치는 상기 폼 입력값 검증에 사용되는 룰셋이 유효하게 정의되어 있는지 여부를 검증하는 룰셋 판독부, 상기 검증된 룰셋을 제1 검증 코드로 변환하여 상기 폼을 포함하는 웹페이지에 추가하는 웹페이지 변환부, 상기 검증된 룰셋을 제2 검증 코드로 생성하는 폼 입력값 검증코드 생성부 및 상기 제2 검증 코드에 기초하여 상기 폼 입력값을 검증하는 검증부를 포함하고, 상기 제1 검증 코드는 클라이언트 측에서 상기 폼 입력값의 검증에 이용되는 것을 특징으로 한다.
바람직하게는, 상기 룰셋 판독부는 상기 웹페이지에 대한 상기 클라이언트의 요청시, 상기 웹페이지의 상기 폼에 포함된 명칭을 갖는 룰셋을 읽어들인 후 해석을 수행하여 상기 룰셋이 오류 없이 정의되었는지 여부를 검증한다.
바람직하게는, 상기 룰셋 판독부는 상기 룰셋에 오류가 존재하는 경우 상기 클라이언트로 에러 메시지를 더 전달한다.
바람직하게는, 상기 제1 검증 코드는 자바스크립트(Javascript)로 변환된다.
바람직하게는, 상기 폼 입력값 검증코드 생성부는 상기 웹페이지의 상기 폼에 포함된 명칭을 갖는 룰셋을 읽어들인 후 해석을 수행하여 상기 제2 검증 코드를 생성한다.
바람직하게는, 상기 제2 검증 코드는 PHP(Personal Hypertext Preprocessor)로 생성된다.
바람직하게는, 상기 검증부는 상기 폼 입력값의 검증 실패시 에러 메시지를 상기 클라이언트로 더 전달한다.
바람직하게는, 상기 웹페이지 변환부 및 상기 폼 입력값 검증코드 생성부 중 적어도 하나는 미리 설정된 템플릿(template)을 이용하여 상기 변환 또는 생성을 수행한다.
본 발명의 다른 태양에 따르면, 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법에 있어서, 폼 입력값 검증 장치에 의해 수행되는 각 단계는 상기 폼 입력값 검증에 사용되는 룰셋이 유효하게 정의되어 있는지 여부를 검증하는 룰셋 판독 단계, 상기 검증된 룰셋을 제1 검증 코드로 변환하여 상기 폼을 포함하는 웹페이지에 추가하는 웹페이지 변환 단계, 상기 검증된 룰셋을 제2 검증 코드로 생성하는 검증코드 생성 단계 및 상기 제2 검증 코드에 기초하여 상기 폼 입력값을 검증하는 폼 입력값 검증 단계를 포함하고, 상기 제1 검증 코드는 클라이언트 측에서 상기 폼 입력값의 검증에 이용되는 것을 특징으로 한다.
한편, 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법은 서버 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함한다. 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk), DVD(Digital Video Disk)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
상술한 바와 같이, 본 발명에 따르면 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 클라이언트 및 서버측 모두에서 동일하게 적용하여 보다 편리하게 폼 입력값의 클라이언트 및 서버 이중 검증을 수행할 수 있다.
또한, 본 발명에 따르면 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 클라이언트 및 서버측 모두에서 동일하게 적용하여 웹페이지의 변경 및 확장시에도 보다 유연하게 대처할 수 있다.
또한, 본 발명에 따르면 폼 입력값을 검증하기 위해 작성한 하나의 규칙을 통해 각 필드별로 서로 다른 설정이 가능하도록 하여 모든 형태의 폼에 적용이 가능한 효과가 있다.
도 1은 일반적인 웹페이지에서 사용자의 폼 입력값을 수신하기 위한 예시적인 화면을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따라 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 폼 입력값 검증 장치를 포함하는 전체 시스템을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따라 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 폼 입력값 검증 장치의 세부 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따라 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 폼 입력값 검증 장치에서 수행되는 각 단계를 나타내는 흐름도이다.
도 5a는 본 발명의 일 실시예에 따라 작성된 룰셋의 예시적인 구조를 나타내는 도면이다.
도 5b는 본 발명의 일 실시예에 따라 도 5a의 룰셋의 예시적인 구조에 기초하여 실제로 작성된 룰셋 구조를 나타내는 도면이다.
도 6a는 사용자의 입력을 수신하는 예시적인 폼에 해당하는 웹페이지의 소스 코드를 나타낸 도면이다.
도 6b는 본 발명의 일 실시예에 따라 도 6a의 폼에 룰셋을 적용하기 위해 수정한 소스 코드를 나타낸 도면이다.
도 7a 및 7b는 본 발명의 일 실시예에 따라 클라이언트 측에서 사용자의 폼 입력값을 검증하는 예시적인 화면을 도시한 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는 적절하게 설명된다면 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 발명의 실시예에서, 룰셋(ruleset)이란 웹페이지에 포함된 특정 폼(form)의 각 필드(field)에 대해 적용하고자 하는 규칙들을 규정하는 일련의 수행 코드를 가리키는 광의의 의미이다. 본 발명에서 설명되는 폼 입력값의 검증은 상기 룰셋을 기초로 수행되며, 상기 룰셋의 해석을 통한 판독 과정을 손쉽게 수행하기 위해 XML(eXtensible Markup Language) 등의 확장 가능한 마크업 언어를 이용하여 룰셋을 정의할 수 있으나, 룰셋이 반드시 상기 마크업 언어에 한정되어야 하는 것은 아니다.
또한, 본 발명의 실시예에서 정규 표현식(Regular Expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 형식 언어를 가리키는 광의의 의미이다. 자바스크립트(Javascript), PHP(Personal Hypertext Preprocessor) 등 다양한 언어에서는 표준화된 POSIX의 확장 정규 표현식, 또는 각 언어에서 별도로 정의하여 사용하는 각각의 정규 표현식이 존재할 수 있으며, 본 발명에서의 정규 표현식은 어느 특정 언어에만 한정되어 적용되는 것이 아닌, 모든 언어에 대해 지원될 수 있는 다양한 정규 표현식을 모두 포함할 수 있는 포괄적인 개념으로 해석되어야 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
전체 시스템 구성
도 2는 본 발명의 일 실시예에 따라 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 폼 입력값 검증 장치를 포함하는 전체 시스템을 개략적으로 도시한 도면이다.
도 2에 도시되어 있는 바와 같이, 본 발명의 일 실시예에 따른 전체 시스템은, 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 폼 입력값 검증 장치(100)가 웹서버(200)와 연결되어 있으며, 또한 통신 네트워크(400)를 통하여 단말 장치(300)와 연결될 수 있다.
먼저, 본 발명의 일 실시예에 따르면, 폼 입력값 검증 장치(100)는 웹서버(200)와 협동하여 단말 장치(300)가 입력값의 검증이 필요한 폼을 포함하는 웹페이지를 요청한 경우, 웹페이지에 지정된 룰셋을 판독하여 검증하고, 검증된 룰셋에 기초하여 웹페이지를 변환한 후 웹서버(200)를 통하여 단말 장치(300)로 변환된 웹페이지를 전송하도록 하는 기능을 수행한다. 변환된 웹페이지에는 룰셋에 기초하여 폼 입력값을 검증하기 위한 코드가 포함되어 사용자가 입력하는 폼 입력값 각각에 대해 단말 장치(300), 즉 클라이언트 측에서 검증을 수행하게 된다. 또한, 폼 입력값 검증 장치(100)는 웹서버(200)와 협동하여 단말 장치(300)가 입력이 모두 완료된 폼의 입력값들을 전송한 경우, 웹페이지에 지정된 룰셋을 판독하고, 이에 기초하여 폼 입력값 검증 코드를 생성한 후 생성된 검증 코드에 의해 전송 받은 폼의 입력값들을 직접, 즉 서버측에서 검증하는 기능을 수행한다. 폼 입력값 검증 장치(100)의 상세한 구성요소 및 기능에 대해서는 후술하도록 한다.
본 발명의 일 실시예에 따른 웹서버(200)는 단말 장치(300)로부터 특정 웹페이지에 대한 요청을 수신하고, 해당하는 웹페이지를 단말 장치(300)로 제공하는 종래의 웹서버 기능을 포함하며, 단말 장치(300)가 입력값의 검증이 필요한 폼을 포함하는 웹페이지를 요청한 경우, 폼 입력값의 클라이언트 및 서버측 이중 검증이 수행될 수 있도록 폼 입력값 검증 장치(100)와 협동한다. 그 구체적인 협동 방안으로서, 전술한 바와 같이 입력값의 검증이 필요한 폼을 포함하는 웹페이지 요청을 단말 장치(300)로부터 수신한 경우 변환을 위해 해당 웹페이지를 폼 입력값 검증 장치(100)로 제공하고, 변환된 웹페이지를 수신하여 단말 장치(300)로 제공하는 기능 및 해당 웹페이지에 포함된 폼의 입력값들을 단말 장치(300)로부터 전송 받은 경우 서버측 검증을 위해 전송 받은 입력값들을 폼 입력값 검증 장치(100)로 제공하고, 그 검증 결과를 단말 장치(300)로 전송하는 기능 등을 들 수 있으나, 반드시 이에 한정되는 것은 아니며 당해 분야에서 통상의 지식을 가진 자가 공지된 기술 범위 내에서 다양하게 설계변경되어 적용될 수 있음은 이해될 수 있다.
한편, 본 발명의 일 실시예에 따른 단말장치(300)는 통신 네트워크(400)를 통하여 웹서버(200) 및 폼입력값 검증 장치(100)와 직접 또는 간접적으로 연결하고, 웹서버(200)에게 입력값의 검증이 필요한 폼을 포함하는 특정 웹페이지를 요청하고, 폼에 입력한 폼 입력값들의 클라이언트 측 검증을 수행하며, 검증이 완료된 폼 입력값들을 웹서버(200)로 전송하기 위한 기능을 포함하는 입출력 장치를 의미하며, 데스크톱 컴퓨터뿐만 아니라 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant: PDA), 웹 패드, 스마트 폰을 포함하는 이동 통신 단말기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 얼마든지 본 발명에 따른 단말장치(300)로서 채택될 수 있다. 일반적으로 웹서버(200)와의 웹페이지 요청 및 수신, 폼 입력값들의 전송 등은 HTTP(HyperText Transfer Protocol)을 이용하여 이루어지는 것이 일반적이나 반드시 이에 한정되는 것은 아니다.
또한, 본 발명의 일 실시예에 따르면, 통신 네트워크(400)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 또한, 상기 통신 네트워크(400)는 공지의 월드와이드웹(WWW; World Wide Web)일 수 있으며, 적외선(Infrared Data Association; IrDA) 또는 블루투스(Bluetooth)와 같이 단거리 통신에 이용되는 무선전송기술을 이용할 수도 있다.
도 2에는 폼 입력값 검증 장치(100), 웹서버(200), 단말장치(300) 및 통신 네트워크(400)를 각각 단수의 독립된 블록으로 도시하였으나, 이들 - 이중에서도 특히 폼 입력값 검증 장치(100) 및 웹서버(200) - 은 물리적으로 하나의 기계 내에 구현될 수도 있고 일부 또는 그 각각이 물리적으로 다른 기계에 구현될 수도 있거나, 동일한 기능을 하는 물리적으로 복수 개 존재하는 기계가 병렬적으로 존재할 수도 있다. 이렇듯 본 발명은 각 기능이 구현된 기계 또는 데이터베이스의 물리적인 개수 및 위치에 한정되지 않고 다양한 방식으로 설계 변경될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 자명하다.
폼 입력값 검증 장치
도 3을 참조하여, 본 발명의 일 실시예에 따라 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 폼 입력값 검증 장치(100)를 상세히 설명하면, 폼 입력값 검증 장치(100)는 룰셋 판독부(110), 웹페이지 변환부(120) 및 폼 입력값 검증 코드 생성부(130) 및 검증부(140)를 포함할 수 있다.
먼저, 룰셋 판독부(110)는 웹서버(200)가 단말 장치(300)로부터 입력값의 검증이 필요한 폼을 포함하는 웹페이지 요청을 수신한 경우, 폼 입력값 검증에 사용될 수 있는 룰셋을 적용하기 전에 해당 룰셋이 유효하게 정의되어 있는지 여부를 검증하는 기능을 수행한다. 보다 구체적으로, 룰셋은 미리 작성되어 소정 위치에 저장되도록 설정될 수 있으며, 룰셋 판독부(110)는 룰셋이 저장된 저장 경로에 기초하여 해당 룰셋을 읽어들인 후 해석(parsing)을 수행하는 판독 과정을 통해 룰셋이 오류 없이 정의되었는지 여부를 검증한다.
일반적으로, 사용자의 입력을 수신하는 예시적인 폼에 해당하는 웹페이지의 소스 코드는 도 6a와 같이 작성될 수 있다. 도 6a에서 알 수 있는 바와 같이 해당 폼은 2개의 필드를 갖고 있으며, 이 중 필드명이 "user_id"인 필드는 그 형식이 text이고 필드명이 "password"인 필드는 그 형식이 password으로서 이러한 필드 형식들은 HTML에 미리 정의되어 웹브라우저에 의해 해석될 수 있다.
본 발명의 구체적인 일 예로서, 상기 도 6a의 폼에 룰셋을 적용하기 위해 수정한 소스 코드는 도 6b와 같이 작성될 수 있다. 도 6b와 같이 <form> 태그 안에 ruleset 이란 속성을 추가하고 룰셋의 이름을 부가하여 해당 폼에 적용할 룰셋을 설정할 수 있으며, 룰셋 판독부(110)는 단말 장치(300)로부터 도 6b와 같은 폼을 포함하는 웹페이지에 대한 단말 장치(300) 요청에 기초하여, 도 6b의 <form> 태그로부터 해당 폼에 적용될 룰셋이 "login"인 것을 확인하고, 해당 룰셋을 읽어들인 후 해석(parsing)을 수행하여 룰셋이 오류 없이 정의되었는지 여부를 검증한다.
한편, 룰셋의 예시적인 구조는 도 5a에 도시되어 있다. 상기 예시적인 룰셋 구조는 XML 형식으로 작성되어 있으며, 이 중 태그 <ruleset>은 룰셋 전체를 감싸는 루트(root) 요소에 해당되고 태그 <customrules> 내에 있는 내용들은 미리 정의된 규칙이 아닌 사용자가 새로 정의할 수 있는 사용자 정의 규칙으로 정의되며, 태그 <fields> 내에 있는 내용들은 폼 입력값을 검증하기 위한 각각의 필드에 대한 규칙을 정의하기 위해 사용된다. 전술한 내용들은 본 발명에 따른 룰셋에서 정의될 수 있는 예시적인 형식에 지나지 않으며, 당해 분야에서 통상의 지식을 가진 자가 전술한 예시적인 형식에 구애됨이 없이 공지된 기술 범위 내에서 다양한 설계 변경을 통해 정의하고 사용할 수 있음은 이해될 수 있다.
상기 도 5a의 룰셋의 예시적인 구조에 기초하여 실제로 작성된 그 이름이 “login”인 예시적인 룰셋 구조는 도 5b에 도시되어 있다. 도 5b를 참조하면, 별도의 사용자 정의 규칙은 정의되지 않았으며, 폼을 구성하는 필드 중 필드명이 "user_id"인 필드에 대한 입력값은 규칙 "alpha"를 기초로 검증하도록 구성되어 있음을 알 수 있다. 상기 예시적인 룰셋의 구체적인 형식 및 구성 요소들에 대해서는 후술하도록 한다.
상기 도 5a 및 도 5b와 같은 룰셋의 예시적인 구조에 기초하여 룰셋 판독부(110)의 오류 여부 판단 기준을 살펴보면, 그 일 예로서 <ruleset>, <customrules> 및 <fields> 등 태그 이름이 정확하게 기재되어 있는지, <customrules> 태그 내의 사용자 정의 규칙이 미리 정의된 유형 및 테스트 코드에 맞게 기재되어 있는지, <fields> 태그 내의 각 규칙이 맞게 기재되어 있는지 등을 들 수 있으나 반드시 이에 한정되는 것은 아니다.
만일 룰셋에 오류가 존재하는 경우 이를 기초로 폼 입력값의 검증을 수행할 수 없으므로 룰셋 판독부(110)는 더 이상의 진행을 중단하고 웹서버(200)를 통해 단말 장치(300)로 에러 메시지를 전달하도록 구현될 수 있다. 만일 룰셋에 오류가 존재하지 않는다면, 클라이언트 측에서의 웹 입력값 검증을 진행하기 위해 웹페이지 변환부(120)는 이하에 상술된 바와 같이 그 기능을 수행한다.
웹페이지 변환부(120)는 룰셋에 오류가 존재하지 않는 경우, 상기 룰셋 판독부(110)에 의해 해석된 해당 룰셋을 단말 장치(300)가 요청한 웹페이지의 소스 코드에 웹브라우저가 해석할 수 있는 언어로 변환하여 추가하는 기능을 수행하며, 상기 웹브라우저가 해석할 수 있는 언어는 자바스크립트 (Javascript)를 포함할 수 있으나 반드시 이에 한정되는 것은 아니다. 상기 도 6b에서 도시된 예시적인 폼에 대해 계속하여 설명하면, 상기 웹페이지 변환부(120)는 상기 폼에 적용될 룰셋 “login” 중 명칭이 “user_id”인 필드에 대해 룰셋에 규칙 “alpha”로 정의되어 있음을 확인하고, 규칙 “alpha”는 영문자만 허용하는 정규 표현식으로 미리 정의되어 있으므로 이에 맞도록 웹브라우저가 해석할 수 있는 언어를 추가적으로 생성하여 소스 코드에 추가한다. 그 일 예로서 아래와 같은 자바스크립트 코드가 생성되어 소스 코드에 추가될 수 있으나, 반드시 아래의 예에 한정되어야 하는 것은 아니다. 또한, 웹페이지 변환부(120)는 변환 작업을 용이하게 하기 위해 미리 작성된 자바스크립트 템플릿(template)을 이용할 수 있다.
function Check_user_id(user_id)
{
If (!/^[a-z]*$/user_id)
{
alert('영문자만 입력해주시기 바랍니다.');
return false;
}
}
전술한 바와 같이 웹페이지 변환부(120)에 의해 변환된 웹페이지의 소스 코드는 단말 장치(300)로부터 입력값의 검증이 필요한 폼을 포함하는 웹페이지의 요청에 대응하여 웹서버(200)를 통해서 단말 장치(300)로 전송된다. 단말 장치(300)로 전송된 웹페이지의 소스 코드는 클라이언트 측에서 폼 입력값의 검증을 수행할 수 있는 코드를 포함하고 있으므로, 이후 단말 장치(300)를 통해 사용자가 입력하는 값을 클라이언트 측에서 검증하게 된다.
도 7a 및 도 7b를 참조하여 본 발명의 일 실시예에 따른 클라이언트 측에서 사용자의 폼 입력값을 검증하는 예시적인 화면을 설명하면, 도 1의 다수의 폼 입력값 중 “아이디”에 해당하는 필드의 경우, “4-12자리의 영문 소문자, 숫자”만 사용할 수 있도록 룰셋에 정의되어 있고, 웹페이지 변환부(120)에 의해 룰셋에 정의된 폼 입력값 검증을 수행할 수 있는 자바스크립트 코드가 소스 코드에 포함되어 있다고 가정한다. 만일 사용자가 “111”이란 값을 입력하는 경우 입력된 값은 자바스크립트 코드에 의해 룰셋에 정의된 조건에 맞지 않음(4-12 자리 이내)이 검증 되고, 이에 따라 설정된 적절한 에러 메시지, 예를 들어 도 7a와 같이 “아이디는 4자 이상이어야 합니다”를 사용자에게 전송할 수 있다.
만일 사용자가 “111#”이란 값을 입력하는 경우 입력된 값은 4-12자리 이내인 조건은 만족하나 “영문 소문자, 숫자”만 사용할 수 있다는 룰셋에 정의된 조건은 만족되지 않음이 자바스크립트 코드에 의해 검증되고, 이에 따라 설정된 적절한 에러 메시지, 예를 들어 도 7b와 같이 “영문소문자, 숫자만 입력가능합니다”를 사용자에게 전송할 수 있다.
이와 같이, 폼 입력값 검증 장치(100)의 웹페이지 변환부(120)에 의해 변환된 웹페이지 소스 코드에 의해 룰셋으로 정의한 폼 입력값 검증 기능이 클라이언트 측에서 수행될 수 있다.
한편, 폼 입력값 검증 코드 생성부(130)는 웹 서버(200)가 전송 받은, 사용자가 단말 장치(300)를 통해 상기 변환된 웹페이지 내의 폼에 입력한 값들을 전달 받아 이를 서버측에서 검증하기 위한 코드를 생성하는 기능을 수행한다. 보다 구체적으로, 폼 입력값 검증 코드 생성부(130)는 코드를 생성하기 위해 룰셋 판독부(110)가 해석한 룰셋의 내용을 상기 룰셋을 추후 설명할 검증부(140)가 해석할 수 있는 언어로 변환된 코드를 생성하며, 상기 검증부(140)가 해석할 수 있는 언어는 PHP(Personal Hypertext Preprocessor)를 포함할 수 있으나 반드시 이에 한정되는 것은 아니다. 상기 도 6b에서 도시된 예시적인 폼에 대해 사용자가 입력한 입력값을 전달받은 경우를 계속하여 설명하면, 상기 폼 입력값 검증 코드 생성부(130)는 상기 폼에 적용된 룰셋 “login” 중 명칭이 “user_id”인 필드에 대해 룰셋에 규칙 “alpha”로 정의되어 있음을 확인하고, 규칙 “alpha”는 영문자만 허용하는 것으로 정규 표현식으로서 미리 정의되어 있으므로 이에 맞도록 검증부(140)가 해석할 수 있는 언어로 변환된 코드를 생성한다. 그 일 예로서 아래와 같은 PHP 코드가 생성될 수 있으나, 반드시 아래의 예에 한정되어야 하는 것은 아니다. 또한, 폼 입력값 검증 코드 생성부(130)은 코드 생성 작업을 용이하게 하기 위해 미리 작성된 PHP 템플릿(template)을 이용할 수 있다.
<?php
function Check_user_id($user_id) {
if (!ereg(“^[a-z]*$”,$user_id)) {
popup_msg(“영문자만 입력해주시기 바랍니다.”);
}
}
?>
마지막으로, 검증부(140)는 폼 입력값 검증 코드 생성부(130)에서 생성된 코드의 해석을 통해 단말 장치(300)로부터 전달 받은 폼의 각 필드에 대한 입력값들을 서버측에서 검증하는 기능을 수행한다. 앞선 예에서 계속하면, 검증부(140)는 전달받은 폼 중 “user_id” 필드에 대해 영문자만 입력되었는지 여부를 검증하는 코드인 폼 입력값 검증 코드 생성부(130)에서 생성된 PHP 코드에 기초하여 검증을 수행하며 만일 “user_id” 필드에 영문자 이외의 문자가 입력된 경우, “영문자만 입력해주시기 바랍니다.”와 같은 팝업 메시지를 단말 장치(300)로 제공하는 등 검증 실패시 에러 메시지를 단말 장치(300)로 전달할 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 폼 입력값 검증 장치(100)는 작성된 하나의 룰셋에 기초하여 클라이언트 및 서버 양쪽에서 폼의 입력값이 이중으로 검증되도록 처리하는 기능을 편리하게 수행할 수 있다.
폼 입력값의 클라이언트 및 서버 이중 검증 수행 단계
다음으로, 도 4를 참조하여 폼 입력값 검증 장치(100)를 통해 수행되는 폼 입력값의 클라이언트 및 서버 이중 검증 수행 단계의 흐름을 설명하면, 먼저 단말 장치(300)로부터 입력값의 검증이 필요한 폼을 포함하는 웹페이지 요청을 수신(S110)하게 되면, 룰셋 판독부(110)는 미리 작성되고 소정 경로에 저장된 룰셋을 읽어들인 후 해석, 즉 판독하여 룰셋이 오류 없이 정의되었는지 여부를 검증(S120)한다.
검증 결과, 룰셋 자체에 오류가 존재하지 않는 경우(S130) 웹 페이지 변환부(120)는 상기 룰셋 판독부(110)에 의해 해석된 해당 룰셋을 웹브라우저가 해석할 수 있는 언어, 예컨대 자바스크립트, 로 변환하고 단말 장치(300)가 요청한 웹페이지의 소스 코드에 추가하는 변환 기능을 수행(S140)한다. 만일 검증 결과 룰셋 자체에 오류가 존재하는 경우에는 이를 기초로 폼 입력값의 검증을 수행할 수 없으므로 룰셋 판독부(110)는 더 이상의 진행을 중단하고 웹서버(200)를 통해 단말 장치(300)로 에러 메시지를 전달하도록 구현될 수 있는 것은 전술한 바 있다.
웹 페이지 변환부(120)에 의해 변환된 웹페이지의 소스 코드는 웹 서버(200)를 통해 단말 장치(300)로 전송되며, 전송된 웹페이지의 소스 코드는 클라이언트 측에서 폼 입력값의 검증을 수행할 수 있는 코드를 포함하고 있으므로, 이후 단말 장치(300)를 통해 사용자가 폼에 입력하는 값은 클라이언트 측에서 검증될 수 있다.
이후, 사용자가 단말 장치(300)를 통해 상기 웹페이지의 폼에 값들의 입력이 완료되어 전송되면 웹 서버(200)가 이를 수신(S160)하게 되며, 이에 따라 폼 입력값 검증 코드 생성부(130)는 수신한 폼 입력값을 검증부(140)가 해석할 수 있는 언어, 예컨대 PHP, 로 작성된 서버측 폼 입력값 검증 코드를 생성(S170)한다.
마지막으로, 검증부(140)는 폼 입력값 검증 코드 생성부(130)에 의해 생성된 코드의 해석을 통해 단말 장치(300)로부터 전달 받은 폼의 입력값들을 서버측에서 검증하는 기능을 수행(S180)한다.
룰셋의 구체적인 형식 및 구성요소
다음으로, 도 5a에서 도시한 룰셋의 예시적인 구조에 대한 구체적 형식 및 구성요소의 일 예에 대해 살펴보도록 한다. 참고로, 이하의 내용은 룰셋의 이해를 돕기 위한 일 예에 해당하며, 당해 분야에서 통상의 지식을 가진 자라면 이하의 내용에 한정됨이 없이, 이하의 예시적인 내용을 기초로 통상의 창작 능력을 발휘하여 다양하게 설계 변경하여 적용할 수 있음은 이해될 수 있다.
전술한 바와 같이 룰셋의 예시적인 구조 중 태그 <customrules> 내에 포함된 내용들은 사용자 정의 규칙에 해당한다. 사용자가 많이 사용하는 규칙들의 경우 사용자가 <customrules> 태그 내에 별도로 정의하여 사용할 필요 없이 미리 정의되어 기본적으로 제공될 수 있으며, 이와 같이 기본적으로 제공될 수 있는 미리 정의된 규칙들은 이하의 표 1과 같이 예시적으로 설정될 수 있다.
규칙명 의미 정규 표현식
email 메일 주소 /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
userid 사용자 아이디 /^[a-z]+[\w-]*[a-z0-9_]+$/
url URL /^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]+)/
alpha 영문자 /^[a-z]*$/i
alpha_number 영문자 및 숫자, 언더스코어 /^[a-z][a-z0-9_]*$/i
number 정수 숫자 /^[1-9][0-9]*$/
<customrules> 내에는 이하와 같이 규칙 이름, 유형 및 테스트 코드를 입력하여 사용자 정의 규칙을 정의할 수 있다.
<customrules>
<rule name=”규칙명” type=”유형” test=”테스트 코드” />
</customrules>
이 중 규칙명은 사용자 임의로 지정될 수 있으며, 유형은 이하의 정규 표현식, 목록, 수식 중 어느 하나를 선택할 수 있고, 테스트 코드에는 유형에 적용할 속성을 기입한다.
먼저, 정규 표현식에 해당하는 유형의 경우, 유형에 정규 표현식을 나타내는 값 “regex”를 입력하고, 테스트 코드에는 적용할 정규 표현식을 입력한다. 일 예로서, 알파벳, 숫자, 언더스코어(밑줄)을 허용하는 규칙명 “alpha_num”을 정의하려면 이하와 같이 작성할 수 있다.
<rule name=”alpha_num” type=”regex” test=”/^\w+$/” />
다음으로, 목록에 해당하는 유형의 경우, 유형에 목록을 나타내는 값 “enum”을 입력하고, 테스트 코드에는 적용할 목록을 나열한다. 목록 유형에서는 각 항목을 구분할 구분자를 별도로 설정할 수 있는 delim 속성을 추가적으로 지정할 수 있으며, delim 속성을 지정하지 않는 경우 기본값은 쉼표(,)이다. 일 예로서, 사용자가 apple, orange, banana 중 하나만 선택하게 하되 그 구분자들을 @로 사용하도록 하는 규칙명 “fruit”를 정의하려면 이하와 같이 작성할 수 있다.
<rule name=”fruit” type=”enum” test=”apple@orange@banana” delim=”@” />
마지막으로, 수식에 해당하는 유형의 경우, 유형에 수식을 나타내는 값 “expr”을 입력하고, 테스트 코드에는 적용할 수식을 입력한다. 만일 룰셋이 XML 등의 언어로 작성되는 경우, 각 언어에서 특정한 의미로 사용되도록 미리 정의된 캐릭터, 예컨대 XML의 경우 <, >, & 등, 의 경우 다른 엔티티, 예컨대 &lt;, &gt;, &amp; 등, 으로 변환하여야 한다. 일 예로서, 어떤 값이 10보다 작은지 확인하는 규칙명 “less_than_10”을 정의하려면 이하와 같이 작성할 수 있다.
<rule name=”less_than_10” type=”expr” test=”$$ &lt; 10” />
한편, 룰셋의 예시적인 구조 중 태그 <fields> 내에 포함된 내용들은 폼 입력값을 검증하기 위한 각각의 필드를 정의하기 위해 사용된다. <fields> 내에는 이하와 같이 필드명, 규칙명 그리고 부가속성을 입력하여 각 필드를 정의할 수 있다.
<fields>
<field name=”필드명” rule=”규칙명” 부가속성 />
</fields>
이 중 필드명은 룰셋을 적용할 폼에 사용되는 각 필드와 동일하게 설정되어야 하며, 규칙명은 표 1에 도시된 예와 같은 미리 정의된 규칙 또는 <customrules> 내에 정의된 사용자 정의 규칙 중 어느 하나를 선택할 수 있고, 부가속성은 필드에 추가적으로 지정하고자 하는 부가적인 속성을 기입하며, 부가속성의 구체적인 예로서 필수요소인지, 길이 제한을 두는지, 기본값을 부여하는지, 동일한 값인지, 변경자 등이 제공될 수 있다.
먼저, 부가속성 중 필수요소에 대해 설명하면, 폼의 특정 필드가 필수요소로서 반드시 값을 입력하도록 하려면 필수요소에 해당하는 부가속성 required의 값을 true로 입력한다. 일 예로서, 폼의 user_id 필드에 알파벳만 허용하는 규칙 alpha를 적용하고, 해당 필드가 필수 요소인 경우 다음과 같이 작성할 수 있다.
<field name=”user_id” rule=”alpha” required=”true” />
다음으로, 부가속성 중 길이 제한에 대해 설명하면, 폼의 특정 필드에 입력되는 입력값에 대해 최소 길이, 최대 길이, 또는 최소 및 최대 길이의 제한을 두고자 하면 길이 제한에 해당하는 length에 제한하는 길이를 입력한다. 일 예로서, 폼의 user_id 필드에 3글자 이상 6글자 이하로 길이를 제한하고 싶다면 다음과 같이 작성할 수 있다.
<field name=”user_id” length=”3:6” />
다음으로, 부가속성 중 기본값에 대해 설명하면, 폼의 특정 필드가 필수요소가 아니라면 사용자가 입력을 하지 않는 경우 자동적으로 입력될 수 있는 기본값을 설정할 수 있으며 이 경우 default에 기본값을 대입한다. 일 예로서, 폼의 count 필드에 기본값 10을 대입하고자 하는 경우 다음과 같이 작성할 수 있다.
<field name=”count” default=”10” />
또한, 부가속성 중 변경자에 대해 설명하면, 폼의 특정 필드에 적용되는 규칙을 반대로 또는 변경하여 적용할 수 있도록 하여 사용자 정의 규칙의 개수를 감소시킬 수 있으며, 이 경우 modifier에 해당하는 변경값을 대입한다. 일 예로서, 폼의 word 필드에 숫자가 아닌 값만 허용하고자 하는 경우 종래에 숫자만 허용하는 상기 표 1의 규칙 number 에 단순히 변경자를 적용하여 구현할 수 있으며 다음과 같이 작성할 수 있다.
<field name=”word” rule=”number” modifier=”not” />
한편, 본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동되도록 구성될 수 있으며, 그 역도 마찬가지다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100 : 폼 입력값 검증 장치 110 : 룰셋 판독부
120 : 웹페이지 변환부 130 : 폼 입력값 검증코드 생성부
140 : 검증부 200 : 웹 서버
300 : 단말 장치 400 : 통신 네트워크

Claims (18)

  1. 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 장치에 있어서,
    상기 폼 입력값 검증에 사용되는 룰셋이 유효하게 정의되어 있는지 여부를 검증하는 룰셋 판독부;
    상기 검증된 룰셋을 제1 검증 코드로 변환하여 상기 폼을 포함하는 웹페이지에 추가하는 웹페이지 변환부;
    상기 검증된 룰셋을 제2 검증 코드로 생성하는 폼 입력값 검증코드 생성부; 및
    상기 제2 검증 코드에 기초하여 상기 폼 입력값을 검증하는 검증부를 포함하고,
    상기 제1 검증 코드는 클라이언트 측에서 상기 폼 입력값의 검증에 이용되는 것을 특징으로 하는 장치.
  2. 청구항 1에 있어서, 상기 룰셋 판독부는,
    상기 웹페이지에 대한 상기 클라이언트의 요청시, 상기 웹페이지의 상기 폼에 포함된 명칭을 갖는 룰셋을 읽어들인 후 해석을 수행하여 상기 룰셋이 오류 없이 정의되었는지 여부를 검증하는 것을 특징으로 하는 장치.
  3. 청구항 2에 있어서, 상기 룰셋 판독부는,
    상기 룰셋에 오류가 존재하는 경우 상기 클라이언트로 에러 메시지를 더 전달하는 것을 특징으로 하는 장치.
  4. 청구항 1에 있어서, 상기 제1 검증 코드는 자바스크립트(Javascript)로 변환된 것을 특징으로 하는 장치.
  5. 청구항 1에 있어서, 상기 폼 입력값 검증코드 생성부는,
    상기 웹페이지의 상기 폼에 포함된 명칭을 갖는 룰셋을 읽어들인 후 해석을 수행하여 상기 제2 검증 코드를 생성하는 것을 특징으로 하는 장치.
  6. 청구항 1에 있어서, 상기 제2 검증 코드는 PHP(Personal Hypertext Preprocessor)로 생성된 것을 특징으로 하는 장치.
  7. 청구항 1에 있어서, 상기 검증부는,
    상기 폼 입력값의 검증 실패시 에러 메시지를 상기 클라이언트로 더 전달하는 것을 특징으로 하는 장치.
  8. 청구항 1에 있어서, 상기 웹페이지 변환부 및 상기 폼 입력값 검증코드 생성부 중 적어도 하나는 미리 설정된 템플릿(template)을 이용하여 상기 변환 또는 생성을 수행하는 것을 특징으로 하는 장치.
  9. 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법에 있어서,
    폼 입력값 검증 장치에 의해 수행되는 각 단계가,
    상기 폼 입력값 검증에 사용되는 룰셋이 유효하게 정의되어 있는지 여부를 검증하는 룰셋 판독 단계;
    상기 검증된 룰셋을 제1 검증 코드로 변환하여 상기 폼을 포함하는 웹페이지에 추가하는 웹페이지 변환 단계;
    상기 검증된 룰셋을 제2 검증 코드로 생성하는 검증코드 생성 단계; 및
    상기 제2 검증 코드에 기초하여 상기 폼 입력값을 검증하는 폼 입력값 검증 단계를 포함하고,
    상기 제1 검증 코드는 클라이언트 측에서 상기 폼 입력값의 검증에 이용되는 것을 특징으로 하는 방법.
  10. 청구항 9에 있어서, 상기 룰셋 판독 단계는,
    상기 웹페이지에 대한 상기 클라이언트의 요청시, 상기 웹페이지의 상기 폼에 포함된 명칭을 갖는 룰셋을 읽어들인 후 해석을 수행하여 상기 룰셋이 오류 없이 정의되었는지 여부를 검증하는 것을 특징으로 하는 방법.
  11. 청구항 10에 있어서, 상기 룰셋 판독 단계는,
    상기 룰셋에 오류가 존재하는 경우 상기 클라이언트로 에러 메시지를 전달하는 단계를 더 포함하는 것을 특징으로 하는 장치.
  12. 청구항 9에 있어서, 상기 제1 검증 코드는 자바스크립트(Javascript)로 변환된 것을 특징으로 하는 방법.
  13. 청구항 9에 있어서, 상기 방법은,
    상기 웹페이지 변환 단계 이후, 상기 제1 검증 코드가 추가된 웹페이지를 상기 클라이언트로 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 청구항 9에 있어서, 상기 검증코드 생성 단계는,
    상기 웹페이지의 상기 폼에 포함된 명칭을 갖는 룰셋을 읽어들인 후 해석을 수행하여 상기 제2 검증 코드를 생성하는 것을 특징으로 하는 방법.
  15. 청구항 9에 있어서, 상기 제2 검증 코드는 PHP(Personal Hypertext Preprocessor)로 생성된 것을 특징으로 하는 방법.
  16. 청구항 9에 있어서, 상기 폼 입력값 검증 단계는,
    상기 폼 입력값의 검증 실패시 에러 메시지를 상기 클라이언트로 전달하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 청구항 9에 있어서, 상기 웹페이지 변환 단계 및 상기 검증코드 생성 단계 중 적어도 한 단계는 미리 설정된 템플릿(template)을 이용하여 상기 변환 또는 생성을 수행하는 것을 특징으로 하는 방법.
  18. 청구항 9 내지 17 중 어느 한 항에 기재된 방법의 각 단계를 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020110145375A 2011-12-29 2011-12-29 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치 KR101579601B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110145375A KR101579601B1 (ko) 2011-12-29 2011-12-29 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110145375A KR101579601B1 (ko) 2011-12-29 2011-12-29 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130077908A true KR20130077908A (ko) 2013-07-09
KR101579601B1 KR101579601B1 (ko) 2016-01-05

Family

ID=48990983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110145375A KR101579601B1 (ko) 2011-12-29 2011-12-29 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101579601B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655247B1 (ko) * 2015-04-24 2016-09-07 (주)우리젠 Bems 데이터를 이용한 에너지 분석 시스템
CN115544417A (zh) * 2022-10-10 2022-12-30 中电金信软件有限公司 一种网页表单验证方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002074249A (ja) * 2000-09-04 2002-03-15 Dainippon Printing Co Ltd 電子フォーム利用システム
JP2002116987A (ja) * 2000-10-05 2002-04-19 Mitsubishi Electric Corp 変換規則・入力プログラム生成装置及びその方法並びに変換規則・入力フォーム生成装置及びその方法並びにクライアントサーバシステム
KR20030045883A (ko) 2001-12-03 2003-06-12 엘지전자 주식회사 웹을 이용한 네트워크 장비 관리 시스템의 입력값 검사 방법
JP2005141416A (ja) * 2003-11-05 2005-06-02 Nomura Research Institute Ltd チェックコード生成システム、生成プログラム、生成方法、及びチェックコード生成機能を有する入力チェックシステム、入力チェック方法
KR20070025352A (ko) * 2005-09-01 2007-03-08 삼성전자주식회사 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002074249A (ja) * 2000-09-04 2002-03-15 Dainippon Printing Co Ltd 電子フォーム利用システム
JP2002116987A (ja) * 2000-10-05 2002-04-19 Mitsubishi Electric Corp 変換規則・入力プログラム生成装置及びその方法並びに変換規則・入力フォーム生成装置及びその方法並びにクライアントサーバシステム
KR20030045883A (ko) 2001-12-03 2003-06-12 엘지전자 주식회사 웹을 이용한 네트워크 장비 관리 시스템의 입력값 검사 방법
JP2005141416A (ja) * 2003-11-05 2005-06-02 Nomura Research Institute Ltd チェックコード生成システム、生成プログラム、生成方法、及びチェックコード生成機能を有する入力チェックシステム、入力チェック方法
KR20070025352A (ko) * 2005-09-01 2007-03-08 삼성전자주식회사 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655247B1 (ko) * 2015-04-24 2016-09-07 (주)우리젠 Bems 데이터를 이용한 에너지 분석 시스템
CN115544417A (zh) * 2022-10-10 2022-12-30 中电金信软件有限公司 一种网页表单验证方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
KR101579601B1 (ko) 2016-01-05

Similar Documents

Publication Publication Date Title
US10180936B2 (en) Human readable mechanism for communicating binary data
US9552237B2 (en) API validation system
JP4041013B2 (ja) 外部xml有効性検証装置を利用するxmlパージング装置及び方法
RU2637477C1 (ru) Система и способ обнаружения фишинговых веб-страниц
US11140153B2 (en) Techniques for identification of location of relevant fields in a credential-seeking web page
US8407766B1 (en) Method and apparatus for monitoring sensitive data on a computer network
US10762095B2 (en) Validation of log formats
US10372980B2 (en) Electronic form identification using spatial information
KR20060102484A (ko) 브라우저 디스플레이 내에서 도메인을 하이라이트하기 위한시스템 및 방법
US10223550B2 (en) Generating canonical representations of JSON documents
US20160342689A1 (en) Method, device and system for loading recommendation information and detecting web address
JP2017045462A (ja) コンタクトリストを利用してユーザを認証するシステムおよび方法
WO2021031902A1 (zh) Url提取方法、装置、设备及计算机可读存储介质
US20070150477A1 (en) Validating a uniform resource locator (&#39;URL&#39;) in a document
US11036719B2 (en) Performance and quality optimized architecture for cloud applications
US10606568B2 (en) Method and apparatus for compiling computer language
KR20130077908A (ko) 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치
CN109657472B (zh) Sql注入漏洞检测方法、装置、设备及可读存储介质
CN111355709A (zh) 数据验证方法、装置、电子设备及计算机可读存储介质
US20180314683A1 (en) Method and device for processing natural language
CN111368231B (zh) 一种异构冗余架构网站的测试方法及装置
KR101201060B1 (ko) 덧글과 연관하여 개인 홈페이지 서비스를 제공하는 방법 및 그 방법을 채용한 시스템
CN101334738B (zh) 用以解析电子文件的技术
CN112632332A (zh) 一种xml文件可配置化校验方法、系统、设备及存储介质
CN111783006A (zh) 页面的生成方法、装置、电子设备及计算机可读介质

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 5