현재 위치: > 최신 기사 목록> PHP 오류 처리 : 일반적인 보안 취약성 및 보호 조치 방지

PHP 오류 처리 : 일반적인 보안 취약성 및 보호 조치 방지

M66 2025-06-13

PHP 오류 처리 : 일반적인 보안 취약성 및 보호 조치 방지

소개:
PHP는 동적 웹 사이트를 개발하기위한 강력한 기능과 유연성을 제공하는 널리 사용되는 서버 측 스크립팅 언어입니다. 그러나 PHP는 또한 사용 편의성과 유연성의 보안 문제가 있습니다. 이 기사는 몇 가지 일반적인 PHP 보안 취약점을 탐구하고 개발자가 샘플 코드를 통해 이러한 취약점에 대한 보호를 강화하도록 도와줍니다.

1. SQL 주입

SQL 주입 공격은 일반적인 보안 취약점 중 하나입니다. 공격자는 SQL 문을 악의적으로 주입하여 데이터베이스에서 무단 작업을 수행 할 수 있습니다. SQL 주입을 방지하려면 전처리 된 문 및 매개 변수 결합을 사용하는 것이 좋습니다. 샘플 코드는 다음과 같습니다.

<?php
// 사용자 입력에서 사용자 이름과 비밀번호를 얻습니다
$username = $_POST['username'];
$password = $_POST['password'];

// 데이터베이스에 연결하십시오
$db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');

// 전처리 문 및 매개 변수 바인딩을 사용하여 실행하십시오 SQL 질문
$stmt = $db-> repay ( &#39;select * username = : username and password = : password&#39;);
$ stmt-> bindValue ( &#39;: username&#39;, $ username);
$ stmt-> bindValue ( &#39;: password&#39;, $ password);
$ stmt-> execute ();

// 쿼리 결과를 가져옵니다. user $ user = $ stmt-> fetch ();

// 쿼리 결과가 비어 있으면 (! $ user) {IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IN
    Echo "유효하지 않은 사용자 이름 또는 비밀번호";
} 또 다른 {
    에코 "환영합니다". $ user [ &#39;username&#39;]. "!";
}
?>

2. XSS (크로스 사이트 스크립팅 공격)

XSS (크로스 사이트 스크립팅 공격)는 공격자가 악성 스크립트를 주입하여 사용자의 민감한 정보를 훔칠 수있는 또 다른 일반적인 보안 취약점입니다. XSS 공격을 방지하는 효과적인 방법은 HTML 특수 사용자 입력 문자를 피하는 것입니다. 샘플 코드는 다음과 같습니다.

<?php
// 사용자 입력에서 댓글 내용을 가져옵니다
$comment = $_POST['comment'];

// 의견 내용을 수행하십시오 HTML 특별 캐릭터 탈출
$escapedComment = htmlspecialchars($comment);

// 데이터베이스에 주석을 저장합니다
$db-> query ( "댓글에 삽입 (내용) 값 ( &#39;$ ESCAPEDCOMMENT&#39;)");
?>

3. 파일 업로드 취약성

파일 업로드 취약점을 통해 공격자는 악성 파일을 업로드하여 서버에서 임의의 코드를 실행할 수 있습니다. 파일 업로드 취약점을 방지하려면 파일의 유형과 크기가 제한되어야합니다. 다음은 업로드 된 파일의 유형 및 크기를 제한하는 방법을 보여주는 샘플 코드입니다.

<?php
// 업로드 된 파일에서 관련 정보를 얻습니다
$fileName = $_FILES['file']['name'];
$fileSize = $_FILES['file']['size'];
$fileTmp = $_FILES['file']['tmp_name'];
$fileError = $_FILES['file']['error'];

// 파일 유형과 크기를 확인하십시오
$fileExt = pathinfo($fileName, PATHINFO_EXTENSION);
$allowedTypes = array('jpg', 'jpeg', 'png');
$maxSize = 1000000; // 1MB

if (!in_array($fileExt, $allowedTypes) || $fileSize > $ maxsize) {
    Echo "유효하지 않은 파일 유형 또는 크기";
} 또 다른 {
    // 지정된 디렉토리로 파일을 저장하면서 koz_uploaded_file ($ filetmp, &#39;uploads/&#39;. $ filename);
    Echo "파일이 성공적으로 업로드되었습니다.";
}
?>

결론적으로

PHP 보안은 개발자에게 중요합니다. 올바른 오류 처리 및 보호 조치를 통해 공통 보안 취약점을 효과적으로 줄일 수 있습니다. 예를 들어, 전처리 된 문 및 매개 변수 바인딩을 사용하면 SQL 주입을 방지하고 HTML 특수 문자 이스케이프를 사용하면 XSS 공격으로부터 보호 할 수 있으며 파일 유형과 크기를 제한하면 파일 업로드 취약점을 방지 할 수 있습니다. 경고를 유지하고 적절한 보안 조치를 취 함으로써만 응용 프로그램 및 사용자의 데이터를 효과적으로 보호 할 수 있습니다.