ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 30. 필터(Filters) - PHP 강좌, PHP5
    Web/PHP 2015. 6. 13. 13:59

    PHP Filters
     데이터 검증 = 데이터가 적절한 양식인지 결정하는 것
     데이터 제거(Sanitizing) = 데이터의 어떤 부정확한 문자를 제거하는 것




    1. The PHP Filter Extension
     PHP 필터는 외부 입력을 검증하고 제거하는데 사용됩니다.

     PHP 필터 확장은 사용자 입력을 체크하기 위한 여러 함수를 가지고 있습니다.
     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <!DOCTYPE html>
    <html>
    <head>
    <style>
    table, th, td {
         border: 1px solid black;
         border-collapse: collapse;
    }
    th, td {
         padding: 5px;
    }
    </style>
    </head>
    <body>
     
    <table>
       <tr>
         <td>Filter Name</td>
         <td>Filter ID</td>
       </tr>
       <?php
       foreach (filter_list() as $id =>$filter) {
           echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
       }
     ?>
    </table>
     
    </body>
    </html>
    cs

     











    2. Why Use Filters?
     여러 웹 어플리케이션은 외부 입력 값을 받습니다. 외부 입력/데이터는 아래와 같습니다:
      - User input from a form
      - Cookies
      - Web services data
      - Server variables
      - Database query results


     * 항상 외부 데이터를 검증해야 합니다!
       유효하지 않는 제출된 데이터는 보안적 문제를 일으키고 웹 페이지를 멈추게 합니다!
       PHP 필터를 사용함으로 어플리케이션에 올바른 입력을 얻는 것을 확신시킵니다!



    3. PHP filter_var() Function
     filter_var() 함수는 데이터의 검증과 제거를 합니다.

     filter_var() 함수는 명시된 필터와 함께 단일 변수를 여과합니다. 
      - 체크하길 원하는 변수
      - 체크에 사용할 타입 





    4. Sanitize a String
     아래 예제는 문자열에서 모든 HTML 태그를 제거하는 예제입니다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html>
    <html>
    <body>
     
    <?php
    $str = "<h1>Hello World!</h1>";
    $newstr = filter_var($str, FILTER_SANITIZE_STRING);
    echo $newstr;
    ?>
     
    </body>
    </html>
    cs





     






    5. Validate an Integer
     아래 예제는 변수가 정수인지 체크하는 예제입니다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $int = 100;
     
    if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
        echo("Integer is valid");
    else {
        echo("Integer is not valid");
    }
    ?>
    cs





    6. Validate an IP Address
     아래 예제는 filter_var() 함수를 사용하여 변수 $ip가 올바른 IP 주소인지 체크하는 예제입니다:



     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!DOCTYPE html>
    <html>
    <body>
     
    <?php
    $ip = "127.0.0.1";
     
    if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
         echo("$ip is a valid IP address");
    else {
         echo("$ip is not a valid IP address");
    }
    ?>
     
    </body>
    </html>
    cs



     










    * 이 강좌는 'w3schools'를 참조하여 작성하였습니다.

    댓글

Designed by Tistory.