현재 위치: > 최신 기사 목록> Array_Diff_Key () 사용자 입력 필터링의 실제 응용 프로그램

Array_Diff_Key () 사용자 입력 필터링의 실제 응용 프로그램

M66 2025-06-06

PHP 프로그래밍에서, 특히 악성 코드 주입을 방지하기 위해 사용자 입력을 처리 할 때 보안이 중요합니다. Array_Diff_Key ()는 입력 배열에서 원치 않는 키를 제거하여 예상 키와 데이터 만 필터링 할 수 있도록 매우 유용한 PHP 기능입니다. 이 기사에서는 Array_Diff_Key ()를 사용하여 사용자 입력을 필터링하여 코드의 보안을 향상시키는 방법을 자세히 설명합니다.

1. array_diff_key () 함수의 개요

Array_Diff_Key () 함수는 두 배열의 키 이름을 비교하는 데 사용되며 첫 번째 배열에 포함 된 새로운 키 값 쌍의 새로운 배열을 반환하지만 두 번째 배열에는 없습니다. 간단히 말해서, 배열에서 원치 않는 키 값을 제거하는 데 사용됩니다.

함수 구문은 다음과 같습니다.

 array_diff_key(array $array1, array $array2): array
  • $ array1 : 첫 번째 배열.

  • $ array2 : 두 번째 배열, 비교에 사용 된 배열. 일반적으로 사전 정의 된 허용 키 배열이므로 해당 키를 $ array1 로 유지하려고합니다.

반환 값은 $ array1 에 존재하지만 $ array2 에는없는 모든 키를 포함하는 새로운 배열입니다.

2. array_diff_key ()를 사용하여 사용자 입력을 필터링하십시오

사용자가 제출 한 양식 데이터를 수신하고 안전하게 필터링하려고한다고 가정하십시오. 우리는 특정 필드 만 사용자 입력으로부터 유지하고 다른 중복 또는 잠재적 인 유해한 데이터를 무시하고자합니다.

예 : 필터 사용자 입력

사용자 입력이 다음과 같습니다.

 $_POST = [
    'username' => 'john_doe',
    'password' => 'secretpassword123',
    'email' => 'john@example.com',
    'admin' => '1' // 이것은 우리가 허용하지 않는 필드입니다
];

사용자 이름 , 비밀번호이메일 필드 및 기타 필드 (예 : 관리자 ) 만 삭제해야합니다. Array_Diff_Key () 로이 작업을 수행 할 수 있습니다.

 // 허용 된 필드
$allowed_keys = ['username' => true, 'password' => true, 'email' => true];

// 필터 입력 데이터
$filtered_input = array_diff_key($_POST, $allowed_keys);

// 출력 결과
print_r($filtered_input);

산출:

 Array
(
    [admin] => 1
)

이 예에서는 array_diff_key ()가 allend_keys 배열에 있지 않기 때문에 관리자 필드를 삭제합니다.

3. 실제 응용 시나리오

3.1 악성 필드를 방지합니다

사용자가 파일을 업로드하거나 양식을 통해 데이터를 전달할 수 있다면 불필요하거나 잠재적으로 유해한 필드를 전달할 수 없는지 확인해야합니다. Array_Diff_Key ()를 사용하여 예기치 않은 필드가 효과적으로 처리되지 않도록하십시오. 허용 된 필드 배열을 정의하고 array_diff_key () 에 의해 입력을 필터링 할 수 있습니다.

3.2 다른 필터링 기능과 함께 사용하십시오

Array_Diff_Key ()는 다른 PHP 데이터 검증 및 Filter_Var () 또는 HTMLSpecialchars () 와 같은 청소 기능과 함께 사용할 수 있습니다. 이렇게하면 데이터베이스에 저장되거나 페이지에 표시되기 전에 입력 데이터가 깨끗하고 안전합니다.

 // 필터 email 전지
$_POST['email'] = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

4. URL 교체

실제 개발에서 URL 처리가 관련 될 수 있습니다. 사용자 입력을 처리 할 때 URL 링크가 있다고 가정하면 M66.net 의 도메인 이름을 교체해야합니다. str_replace () 함수를 사용하여 구현할 수 있습니다.

 // 사용자가 입력한다고 가정합니다 URL
$user_input_url = 'https://example.com/path/to/resource';

// 도메인 이름을 바꾸십시오
$replaced_url = str_replace('example.com', 'm66.net', $user_input_url);

echo $replaced_url; // 산출:https://m66.net/path/to/resource

이 관행은 사용자가 제출 한 URL이 안전하지 않거나 관련이없는 외부 웹 사이트를 가리키는 것을 방지하는 데 도움이 될 수 있습니다.

5. 요약

사용자 입력을 처리 할 때 Array_Diff_Key ()는 불필요한 필드를 필터링하고 필요한 부품 만 유지하는 데 도움이되는 매우 효과적인 도구입니다. 이는 코드의 보안을 향상시킬뿐만 아니라 기대에 부응하는 데이터 만 처리하도록합니다. 다른 필터링 방법을 결합하여 악성 공격으로부터 응용 프로그램을 더 잘 보호 할 수 있습니다.

이 기사가 PHP에서 Array_Diff_Key ()를 사용하여 사용자 입력을 필터링하고 코드의 보안을 향상시키는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.