WebAPI
[ class tree: WebAPI ] [ index: WebAPI ] [ all elements ]

Class: WebAPI

Source Location: /WebAPI/WebAPI.php

Class Overview


WebAPI 패키지는 WEB에서 사용되는 문자열 관련 API를 제공한다.


Variables

Constants

Methods



Class Details

[line 55]
WebAPI 패키지는 WEB에서 사용되는 문자열 관련 API를 제공한다.



[ Top ]


Class Variables

static $utf8 =  true

[line 74]

UTF8 처리 여부. 기본값 true



Tags:

access:  public

Type:   bool


[ Top ]

static $xssinfo =  null

[line 80]

XSS check후 status를 저장



Tags:

access:  public

Type:   object


[ Top ]



Class Methods


static method autolink [line 288]

static void autolink( string &$str)

주어진 문장속의 URL을 hyper link로 변경



Tags:

access:  public


Parameters:

string   &$str  

[ Top ]

static method browser [line 706]

static stdClass browser( [ $u = null])

Broswer API

Browser 정보를 구함




Tags:

since:  1.0.2
access:  public


Parameters:

   $u  

[ Top ]

static method client_ip [line 259]

static string client_ip( [array $udef_haeder = false])

Client의 IP를 구한다. Proxy header가 존재할 경우, 첫번째 Proxy의 forward IP를 반환한다.



Tags:

return:  CIDR
access:  public


Parameters:

array   $udef_haeder   (optional) User Define additional Proxy Header list

[ Top ]

static method filter_context [line 657]

static boolean filter_context( string &$text, string &$pattern)

정규식을 이용하여 필터링



Tags:

access:  public


Parameters:

string   &$text   필터링할 문자열
string   &$pattern   필터링 패턴. 패턴은 PCRE 정규 표현식을 이용한다.

[ Top ]

static method filter_context_file [line 671]

static boolean filter_context_file( string &$text, string &$patfile)

필터링 파일을 이용하여 필터링



Tags:

access:  public


Parameters:

string   &$text   필터링할 문자열
string   &$patfile   필터링 패턴 파일. 패턴은 PCRE 정규 표현식을 이용한다.

[ Top ]

static method filter_ip [line 691]

static boolean filter_ip( string &$ip)

접속 IP($_SERVER['REMOTE_ADDR'])가 주어진 CIDR/MASK에 포함이 되는지 확인



Tags:

access:  public


Parameters:

string   &$ip   매칭시킬 IP 또는 IP 블럭
    • 1.1.1.1
    • 1.1.1.1/24
    • 1.1.1.1/255.255.255.0
    • 1.1.1. (1.1.1.0/24)
    • 1.1. (1.1.0.0/16)
    • 1.1.1.1 - 2.2.2.2 (range)

    [ Top ]

    static method get_file_extension [line 523]

    static string get_file_extension( string $f, [boolean $post = false])

    파일의 확장자를 반환



    Tags:

    return:  파일 확장자. 확장자가 없을 경우 null 반환.
    access:  public


    Parameters:

    string   $f   파일 이름 또는 경로
    boolean   $post   (optional) true로 설정시에 $_FILES[첫번째인자값]['name']의 값에서 확장자를 반환.

    [ Top ]

    static method is_alpha [line 118]

    static bool is_alpha( string &$c)

    주어진 문자열에 숫자, 알파벳, whtie space만으로 구성이 되어 있는지 확인



    Tags:

    access:  public


    Parameters:

    string   &$c   입력값의 처음 1byte만 판단함

    [ Top ]

    static method is_email [line 216]

    static boolean is_email( string &$v)

    주어진 이메일이 valid한지 확인

    도메인 파트의 경우 MX record가 있거나 또는 inverse domain이 설정되어 있어야 true로 판별한다. 도메인 파트가 IP주소일 경우에는 MX record나 inverse domain 을 체크하지 않는다.

    다음의 형식을 체크한다.

    • id@domain.com
    • id@[IPv4]
    • name <id@domain.com>
    • id@domain.com?subject=title&cc=...
    • name <id@domain.com?subject=title&cc=...>
    이메일 parameter가 존재할 경우에는, CC, BCC, SUBJECT, BODY 만 허가가 된다. 만약, 이메일 parameter를 체크하고 싶지 않다면, 이 method에 넘기는 값에서 parameter를 제거하고 넘겨야 한다.




    Tags:

    access:  public


    Parameters:

    string   &$v   check email address

    [ Top ]

    static method is_hangul [line 142]

    static bool is_hangul( string &$s, [bool $division = false])

    주어진 값에 한글(UTF8/EUC-KR)이 포함 되어 있는지를 판단

    이 method의 경우에는 한글이 아닌 다른 연속된 multibyte 문자의 마지막 바이트와 첫번째 바이트에 의한 오차가 발생할 수 있으므로 정확도가 필요할 경우에는 KSC5601::is_ksc5601 method를 이용하기 바란다.




    Tags:

    since:  1.0.1 added 2th parameter.
    access:  public


    Parameters:

    string   &$s  
    bool   $division   (optional) true로 설정할 경우, EUC-KR과 UTF-8을 구분하여 결과값을 반환한다.
    • ASCII returns false
    • UTF-8 returns WebAPI::UTF8
    • EUC-KR returns WebAPI::EUCKR

    [ Top ]

    static method is_injection [line 100]

    static boolean is_injection( string &$s)

    URL parameter 값에 inject 공격이 가능한 코드 감지

    막을 대상:

    • .. 이전 경로
    • semi colon
    • single or double quote
    • %00 (null byte)
    • %25 (%)
    • %27 (')
    • %2e (.)




    Tags:

    access:  public


    Parameters:

    string   &$s  

    [ Top ]

    static method is_protocol [line 244]

    static boolean is_protocol( string &$v)

    주어진 protocol이 valid한지 확인



    Tags:

    access:  public


    Parameters:

    string   &$v   check url address

    [ Top ]

    static method is_proxy [line 163]

    static boolean is_proxy( [array $udef = null])

    Check this connection whethad access through Proxy server.



    Tags:

    access:  public


    Parameters:

    array   $udef   (options) User define 헤더. '-'는 '_'로 표시 해야 함.

    [ Top ]

    static method is_url [line 230]

    static boolean is_url( string &$v)

    주어진 url이 valid한지 확인



    Tags:

    access:  public


    Parameters:

    string   &$v   check url address

    [ Top ]

    static method json_decode [line 747]

    static object json_decode( string $data, [bool $assoc = false], [int $depth = 512], [int $options = 0])

    utf8 conflict 및 binary data 를 해결한 json decode wrapper



    Tags:

    since:  1.0.5
    access:  public


    Parameters:

    string   $data   json string data
    bool   $assoc   (optional) When TRUE, returned objects will be converted into associative arrays.
    int   $depth   (optional) User specified recursion depth (default: 512)
    int   $options   (optional) Bitmask of JSON decode options. Currently only JSON_BIGINT_AS_STRING is supported (default is to cast large integers as floats)

    [ Top ]

    static method json_encode [line 727]

    static string json_encode( mixed $text, [bool $nopretty = false], [bool $normal = true])

    utf8 conflict 및 binary data 를 해결한 json encode wrapper



    Tags:

    since:  1.0.3
    access:  public


    Parameters:

    mixed   $text   encode할 변수
    bool   $nopretty   pretty 출력 여부. 기본값 false이며 이는 pretty 출력 을 의미한다. pretty 인자는 php 5.4 부터 지원한다. [기본값 false]
    bool   $normal   (optional) binary safe를 위한 normalize를 할지 여부 [기본값 true]

    [ Top ]

    static method mimeHeader [line 583]

    static void mimeHeader( string $name, [WebAPI::browser $br = null])

    주어진 파일의 mimetype을 결정하여 다운로드 전송한다.

    Unix/Linux의 숨김 속성 파일은 처리하지 않는다.




    Tags:

    since:  1.0.3
    access:  public


    Parameters:

    string   $name   name 다운로드 시킬 파일 경로
    WebAPI::browser   $br   br (optional) WebAPI::browser 의 반환값. 비워 놓으면 내부적으로 다시 확인한다.

    [ Top ]

    static method mimetype [line 549]

    static string mimetype( string $name, [WebAPI::browser $br = null])

    주어진 파일의 mimetype을 결정한다.



    Tags:

    access:  public


    Parameters:

    string   $name   mimetype 정보를 확인할 파일경로
    WebAPI::browser   $br   br (optional) WebAPI::browser 의 반환값. 비워 놓으면 내부적으로 다시 확인한다.

    [ Top ]

    static method strlen [line 306]

    static integer strlen( string $str)

    Return length of strings

    기본적인 사용법은 php의 native strlen과 동일하다.

    native strlen 과의 차이는, UTF-8 인코딩의 한글 1글자를 CP949와 같이 2byte 로 계산을 한다.




    Tags:

    access:  public


    Parameters:

    string   $str   The input string.

    [ Top ]

    static method substr [line 332]

    static string substr( string $data, int $start, [int $end = false])

    Return part of a string

    사용법은 php의 native substr과 동일하다.

    native substr과의 차이는, 시작과 끝은 한글이 깨지는 문제를 해결을 한다. 이 함수는 한글을 2byte로 처리를 하며, UTF-8이라도 한글을 길이는 2byte로 계산을 하여 반환한다.




    Tags:

    access:  public


    Parameters:

    string   $data   The input string. Must be one character or longer.
    int   $start   start position
    int   $end   (optional) length of returning part.

    [ Top ]

    static method xss [line 389]

    static boolean xss( string &$str)

    XSS 탐지

    • Javascript event(onmouseover 등)가 존재할 경우
    • iframe, frame, script, style, link, meta, head tag가 있을 경우
    • src 또는 href attribute에 javascript를 사용할 경우
    • css background* 나 html background* attribute가 존재할 경우
    • 예외 사항 . youtube link 예외 처리 (iframe)




    Tags:

    return:  XSS 탐지시 true
    access:  public


    Parameters:

    string   &$str  

    [ Top ]


    Class Constants

    EUCKR =  2

    [line 68]



    Tags:

    access:  public

    [ Top ]

    UTF8 =  1

    [line 64]



    Tags:

    access:  public

    [ Top ]



    Documentation generated on Tue, 14 May 2019 02:00:48 +0900 by phpDocumentor 1.4.4