소독에 대한 현대적인 접근 : input_post와 함께`filter_input`를 사용합니다
Filter_Input 함수를 사용하여 PHP의 게시물 입력을 처리하십시오. $ _post의 직접적인 사용으로 인한 XSS 및 SQL 주입의 위험을 피하면서 보안 액세스 및 필터 검증을 동시에 구현할 수 있기 때문입니다. 1. filter_sanitize_full_special_chars를 사용하여 특수 문자 탈출을 위해 더 이상 사용되지 않은 filter_sanitize_string을 대체합니다. 2. 올바른 데이터 형식을 보장하려면 filter_validate_email 및 filter_validate_int를 사용하십시오. 3. 배열 또는 다중 필드는 캡슐화 기능을 통해 배치 처리 될 수 있습니다. 4. PHP 8.1에주의를 기울여 일부 필터가 더 이상 사용되지 않았으며 HTMLSpecialchars, JSON_ENCODE 및 기타 함수와 같은 기능은 출력 탈출을 위해 맥락에서 사용해야합니다. 5. 현대적인 검증 라이브러리 또는 프레임 워크의 내장 메커니즘을 결합하여 보안을 더욱 향상시키는 것이 좋습니다. 안전하고 신뢰할 수있는 PHP 응용 프로그램을 구축하기 위해 항상 사용자 입력을 신뢰할 수없고 엄격하게 필터링하고 확인하십시오.
PHP에서 사용자 입력을 처리 할 때 특히 사후 요청을 통해 제출 된 데이터는 보안이 최우선 과제가되어야합니다. 입력을 소독하기위한 가장 효과적이고 자주 사용되지 않은 도구 중 하나는 INPUT_POST
와 결합 된 경우 PHP의 filter_input
기능입니다. 이 접근법은 유효성 검사없이 $_POST
슈퍼 글로벌에 직접 액세스하기위한 더 깨끗하고 안전한 대안을 제공합니다.

$_POST
대신 filter_input
사용하는 이유는 무엇입니까?
$_POST['field']
에 직접 액세스하는 것은 편리한 것처럼 보일 수 있지만 입력이 올바르게 검증되고 위생화되지 않은 경우 다양한 보안 문제 (XSS), SQL 주입 또는 데이터 유형 불일치의 문을 열어줍니다. filter_input
함수는 한 단계에서 입력을 검색하고 소독 할 수있는 구조화 된 방법을 제공합니다.
// 덜 안전합니다 $ username = $ _post [ 'username']; // 더 안전합니다 $ username = filter_input (input_post, 'username', filter_sanitize_string);
filter_input
사용하면 입력에 안전하게 액세스 할 수있을뿐만 아니라 (키가 존재하지 않으면 null
리턴) 지정된 규칙에 따라 필터링됩니다.

일반적인 사용 사례에 대한 주요 필터
PHP는 다양한 내장 필터를 제공합니다. 다음은 INPUT_POST
있는 가장 일반적으로 사용되는 것입니다.
FILTER_SANITIZE_STRING
원치 않는 문자를 제거하거나 인코딩합니다. (참고 : PHP 8.1 기준으로 더 이상 사용되지 않음 -FILTER_SANITIZE_FULL_SPECIAL_CHARS
대신 사용하십시오.)FILTER_SANITIZE_FULL_SPECIAL_CHARS
htmlspecialchars()
및htmlentities()
와 동일하며 XSS를 방지하기에 좋습니다.FILTER_VALIDATE_EMAIL
입력이 유효한 이메일 형식인지 확인합니다.FILTER_VALIDATE_INT
값이 정수임을 확인합니다.FILTER_SANITIZE_EMAIL
이메일에서 불법 문자를 제거합니다.FILTER_SANITIZE_URL
URL에서 불법 문자를 제거합니다.
예:
$ email = filter_input (input_post, 'email', filter_validate_email); $ age = filter_input (input_post, 'age', filter_validate_int); $ name = filter_input (input_post, 'name', filter_sanitize_full_special_chars);
유효성 검사가 실패하면 (예 : 유효하지 않은 이메일) filter_input
false
반환하여 쉽게 확인할 수 있습니다.
if (! $ email) { 다이 ( '잘못된 이메일 제공.'); }
처리 배열 및 여러 필드
filter_input
한 번에 하나의 키에서 작동하지만 루프 또는 헬퍼 기능을 사용하여 여러 필드 처리를 간소화 할 수 있습니다.
함수 SanitizePost ($ fields) { $ sanitized = []; foreach ($ fields as $ key => $ 필터) { $ sanitized [$ key] = Filter_Input (input_post, $ 키, $ 필터); } 다시 소독되었다. } // 용법 $ userData = sanitizepost ([[ '이름'=> filter_sanitize_full_special_chars, '이메일'=> filter_validate_email, 'age'=> filter_validate_int ]); if (! $ userData [ 'email']) { echo "유효하지 않은 이메일."; }
이 패턴은 입력 처리를 중앙 집중화하고 코드 가독성 및 유지 보수를 향상시킵니다.
감가 상각 및 현대 대안에 대한 메모
PHP 8.1 현재, FILTER_SANITIZE_STRING
과 같은 몇몇 "소독"필터는 잘못된 보안 감각을 제공 할 수 있기 때문에 더 이상 사용되지 않습니다. 예를 들어, 모든 컨텍스트 (예 : JavaScript 또는 CSS)에 대한 콘텐츠를 완전히 탈출하지는 않습니다. 지금 권장되는 연습은 다음과 같습니다.
- 출력 탈출을 위해
FILTER_SANITIZE_FULL_SPECIAL_CHARS
사용하십시오. -
FILTER_VALIDATE_*
사용하여 엄격하게 검증하십시오. -
htmlspecialchars()
,json_encode()
등과 같은 적절한 함수를 사용하여 컨텍스트 (HTML, JS, CSS, URL)를 기반으로 한 탈출 출력.
또한 다음과 같은보다 현대적인 접근 방식을 사용하는 것을 고려하십시오.
- 입력 유효성 검사 라이브러리 (예 : 존중 \ 검증)
- 내장 요청 소독 (Symfony, Laravel)이있는 프레임 워크
- 허용 된 입력 값
최종 생각
INPUT_POST
를 사용한 filter_input
PHP에서 양식 데이터 처리의 보안 및 신뢰성을 향상시키는 간단하지만 강력한 방법입니다. 은 총알은 아니지만 분산 입력 필터링을 장려하고 RAW $_POST
액세스에 대한 개혁을 줄입니다. 적절한 출력 탈출 및 검증 로직과 결합하여 안전한 PHP 응용 프로그램을위한 견고한 기반을 형성합니다.
일찍 사용하고 일관되게 사용하고 모든 사용자 입력을 신뢰할 수없는 것으로 취급하십시오.
위 내용은 소독에 대한 현대적인 접근 : input_post와 함께`filter_input`를 사용합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

항상 $ _post 입력을 확인하고 청소하고, trim, filter_input 및 htmlspecialchars를 사용하여 데이터가 합법적이고 안전한 지 확인하십시오. 2. $ 오류 배열을 확인하여 명확한 사용자 피드백, 오류 메시지 표시 또는 성공 프롬프트를 제공합니다. 3. 일반적인 취약성을 방지하고 세션 토큰을 사용하여 CSRF 공격을 방지하고, 출력되지 않은 출력 및 SQL 주입을 피하십시오. 4. 사용자 경험을 향상시키기 위해 오류가 발생할 때 사용자가 제출 한 유효한 입력을 유지하십시오. 다음 단계를 따라 데이터 무결성과 사용자 친화 성을 보장하는 안전하고 신뢰할 수있는 PHP 양식 처리 시스템을 구축하십시오.

isset () isset () songeSollyForseCurePhpFormHandlingBecauseItOnlyCheckexExistence, notdatatype, format, orsafety; 2. AlwaysValidateInputusingFilter_Input () orfilter_var () witherfirdfilterskike -filter_validate_emailyecorrectformat;

PHP에서 $ _post 데이터가 사라지면 가장 먼저해야 할 일은 post_max_size 구성을 확인하는 것입니다. 이 설정은 PHP가 허용 할 수있는 최대 포스트 요청의 양을 정의합니다. 초과하면 $ _post 및 $ _files가 비어 있고 기본 오류 프롬프트가 없습니다. request_method가 post이고 $ _post가 비어 있고 content_length 및 post_max_size와 결합되어 있는지 확인하여 감지 할 수 있습니다. 많은 수의 입력 필드, 숨겨진 JSON, Base64 사진 또는 여러 파일 업로드 시나리오에서 일반적입니다. 이 솔루션에는 php.ini에서 Post_max_Size (예 : 32m)의 증가가 포함되며 UPLOAD_MA를 보장합니다.

파일 업로드를 처리하고 동시에 데이터를 양식하려면 게시물 메소드를 사용하고 ENCTYPE = "Multipart/Form-Data"를 설정해야합니다. 1. HTML 양식에 메소드 = "post"및 ENCTYPE = "multipart/form-data"가 포함되어 있는지 확인하십시오. 2. $ _post를 통해 제목 및 설명과 같은 텍스트 필드를 얻습니다. 3. $ _files를 통해 업로드 된 파일의 자세한 정보에 액세스하십시오. 4. 업로드가 성공했는지 확인하려면 $ _files [ 'Field'] [ 'Error']를 확인하십시오. 5. 불법 업로드를 방지하기 위해 파일 크기와 유형을 확인하십시오. 6. m을 사용하십시오

tobuildarobustrestfulphpapi, donotrelysolelyon $ _post, asitonlypopulatesswithform-encodedDataandnotjson; 2.checkthecontent-typehea dertodetermineiftheinputisjson, wathreadphp : // inputandanddecodeitusingjson_decode; 3.ifTeContentTypeisNotjson, fallbackto $ _postfor

Filter_Input 함수를 사용하여 PHP에서 게시물 입력을 처리하십시오. $ _post의 직접적인 사용으로 인한 XSS 및 SQL 주입의 위험을 피하면서 보안 액세스 및 필터 검증을 동시에 구현할 수 있기 때문입니다. 1. filter_sanitize_full_special_chars를 사용하여 특수 문자 탈출을 위해 더 이상 사용되지 않은 filter_sanitize_string을 대체합니다. 2. 올바른 데이터 형식을 보장하려면 filter_validate_email 및 filter_validate_int를 사용하십시오. 3. 배열 또는 다중 필드는 캡슐화 기능을 통해 배치 처리 될 수 있습니다. 4. PHP8.1에서 시작하는 데주의를 기울이십시오

보안 CSRF 토큰을 생성하고 저장하십시오 : Random_Bytes ()를 사용하여 암호화 된 보안 토큰을 생성하고 세션 시작시 $ _session을 생성합니다. 2. XSS를 방지하기 위해 HTMLSpecialchars ()를 통해 토큰을 숨겨진 필드로 삽입하고 htmlspecialchars ()를 출력하십시오. 3. 처리 된 스크립트에서 Hash_equals ()를 사용하여 제출 된 토큰이 세션에 저장된 토큰과 일치하는지 확인하고 확인이 실패하면 403 오류가 반환됩니다. 4. 토큰은 민감한 작업 후에 무효화되고 재생되어야합니다. 5. 항상 HTTPS를 통해 전송하고 URL에 토큰 노출을 피하고 상태 변경에 Get을 사용하지 말고 Samesite = Strict 또는 Lax 세션 쿠키를 결합하십시오.

PHP의 다차원 $ _post 배열을 안전하게 처리하려면 먼저 데이터의 존재와 유형을 확인한 다음 필터링하고 청소해야합니다. 1. 정의되지 않은 인덱스 오류를 피하기 위해 isset () 및 is_array ()를 사용하여 배열 키의 존재 및 유형을 확인하십시오. 2. 사서함, 정수 범위 등과 같은 filter_var ()와 같은 함수를 통해 특정 값을 확인하고 정화합니다. 3. Array_Values ()를 사용하여 데이터 구조의 일관성을 보장하기 위해 동적 형태로 인한 불연속 키 이름을 처리합니다. 4. Extract () 비활성화, Max_Input_vars 제한 및 CSRF 보호 사용과 같은 일반적인 취약점을 방지합니다. 5. 재귀 청소 기능을 구축하거나 포인트 심볼 도우미 기능을 사용하여 깊은 안전한 액세스를 달성하십시오. 언제나
