인터넷 시대에 웹 사이트의 보안은 특히 PHP를 사용하여 개발 된 웹 사이트 보안입니다. 이 기사는 몇 가지 일반적인 보안 문제를 탐색하고 SQL 주입, XSS 공격 및 세션 고정 공격과 같은 일반적인 위협을 방지하는 등 PHP를 통해 웹 사이트의 보안을 향상시키는 방법을 소개합니다. 또한 개발자가 이러한 보호 조치를 구현할 수 있도록 관련 코드 예제를 제공합니다.
SQL 주입 공격은 공격자가 악성 SQL 문을 통해 데이터베이스의 데이터를 훔치거나 변조하는 가장 일반적인 보안 문제 중 하나입니다. 전처리 명세서를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 간단한 보호 예는 다음과 같습니다.
$ username = $ _post [ 'username']; $ password = $ _post [ 'password']; $ stmt = $ pdo-> 준비 ( "username =? and password =?"); $ stmt-> execute ([$ username, $ password]); $ user = $ stmt-> fetch ();
XSS 공격은 공격자가 악의적 인 스크립트를 웹 페이지에 주입하거나 사용자 정보를 훔치거나 악의적 인 작업을 수행 할 때입니다. 사용자 입력을 피함으로써 XSS 공격을 효과적으로 방지 할 수 있습니다. 다음은 XSS 공격을 방지하기 위해 PHP의 HTMLSpecialchars 기능을 사용하는 예입니다.
$ name = $ _post [ 'name']; $ message = $ _post [ 'message']; $ name = htmlspecialchars ($ name, ent_quotes, 'utf-8'); $ message = htmlspecialchars ($ message, ent_quotes, 'utf-8'); 에코 "이름 :". $ 이름. "<br> "; 에코 "메시지를 남겨주세요 :". $ 메시지. "<br> ";
세션 고정 공격은 사용자의 세션 ID를 사용하여 사용자로서 악의적으로 작동하는 공격자를 말합니다. 이러한 공격을 방지하기 위해 사용자가 로그인하면 세션 ID를 재생할 수 있습니다. 다음은 세션 고정 공격을 방지하는 코드 예제입니다.
session_start (); if (isset ($ _ post [ 'username']) && isset ($ _ post [ 'password'])) { // 사용자 로그인 확인 // ... session_regenerate_id (true); // 세션 ID를 재생합니다 $ _session [ '사용자'] = $ 사용자; }
파일 업로드는 일반적인 기능이지만 보안 위험을 초래할 수도 있습니다. 파일 업로드의 보안을 보장하기 위해 다음 조치를 취할 수 있습니다.
$ alludTypes = [ 'jpg', 'jpeg', 'png']; $ maxsize = 1024 * 1024; // 1MB $ uploaddir = 'uploads/'; if (isset ($ _ files [ 'file'])) { $ file = $ _files [ 'file']; if ($ file [ 'error'] === upload_err_ok) { $ fileExt = pathInfo ($ file [ 'name'], pathinfo_extension); if (in_array ($ fileExt, $ allendTypes) && $ file [ 'size'] <= $ maxSize) { $ filename = uniqid (). '.' . $ fileExt; $ 대상 = $ uploaddir. $ filename; move_uploaded_file ($ file [ 'tmp_name'], $ 대상); Echo "파일 업로드가 성공적으로 업로드!"; } 또 다른 { Echo "파일 유형 또는 크기는 요구 사항을 충족하지 않습니다!"; } } 또 다른 { echo "파일 업로드 실패!"; } }
보안 로깅은 웹 사이트 보안의 중요한 부분이며 잠재적 인 보안 문제를 추적하고 분석하는 데 도움이 될 수 있습니다. 간단한 PHP 보안 로깅 예는 다음과 같습니다.
함수 logactivity ($ message) { $ logfile = 'log.txt'; $ logmessage = "[". 날짜 ( 'ymd h : i : s'). "]". ". $ 메시지. "\N"; file_put_contents ($ logfile, $ logmessage, file_append); } // 성공적으로 로그인 한 후 로그 로깅 (성공적으로 사용자 로그인 : ". $ _session [ 'user'] [ 'username']); // 민감한 작업을 수행 한 후 Logactivity ( "사용자 수행 작업 : 개인 정보 수정");
웹 사이트 보안 보호는 모든 개발자의 중요한 책임입니다. 이 기사는 PHP를 사용하여 SQL 주입, XSS 공격, 세션 고정 공격 등과 같은 일반적인 보안 위협으로부터 보호하기 위해 효과적인 조치를 취하는 방법에 대해 설명합니다. 합리적인 보호 전략 및 코드 관행을 통해 웹 사이트의 보안을 크게 향상시킬 수 있습니다. 안전은 지속적인 프로세스이며 정기적 인 보안 점검 및 수리는 웹 사이트 보안에 중요한 보장입니다.