PHP Формасының Қауіпсіздігін Қамтамасыз Ету: Толық Нұсқаулық

Автор Ruyag, Квт. 02, 2025, 11:26 AM

« попередня та - наступна тема »

Ruyag


PHP веб-қосымшаларды әзірлеуде кеңінен қолданылатын тіл болғандықтан, формалар арқылы деректерді қауіпсіз өңдеу өте маңызды. Формаларды дұрыс қорғамау XSS (Cross-Site Scripting), SQL инъекциясы немесе CSRF (Cross-Site Request Forgery) сияқты қауіптерге әкелуі мүмкін. Бұл мақалада PHP формаларының қауіпсіздігін қамтамасыз ету жолдары, практикалық кеңестер және код үлгілері SEO-ға сәйкес және түсінікті түрде ұсынылады.

Неліктен PHP Формасының Қауіпсіздігі Маңызды?
Веб-сайттардағы формалар пайдаланушылардан ақпарат жинау үшін қолданылады: логиндер, парольдер, электрондық пошта мекенжайлары және т.б. Егер қауіпсіздік шаралары қолданылмаса, зиянкестер осы деректерді ұрлап, жүйеге зиян келтіруі мүмкін. PHP формасының қауіпсіздігін қамтамасыз ету арқылы сіз:
  • Пайдаланушы деректерін қорғайсыз.
  • Сайтыңыздың сенімділігін арттырасыз.
  • Google сияқты іздеу жүйелерінде жақсы рейтингке ие боласыз, өйткені қауіпсіз сайттарға басымдық беріледі.

PHP Формасының Қауіпсіздігін Қамтамасыз Етудің Негізгі Қадамдары
1. Деректерді Тексеру және Фильтрлеу
Пайдаланушы енгізген деректерді серверге жібермес бұрын тексеру керек. PHP-да filter_var() функциясы бұл үшін өте қолайлы.

<?php
$email 
$_POST['email'];
if (
filter_var($emailFILTER_VALIDATE_EMAIL)) {
    echo 
"Енгізілген email дұрыс: " htmlspecialchars($email);
} else {
    echo 
"Қате email форматы!";
}
?>


Жоғарыдағы кодта filter_var() электрондық поштаның дұрыстығын тексереді, ал htmlspecialchars() XSS шабуылдарын болдырмау үшін арнайы символдарды кодтайды.

2. SQL Инъекциясынан Қорғау
Егер форма деректері дерекқорға жіберілсе, SQL инъекциясынан қорғану үшін дайындалған мәлімдемелерді (prepared statements) қолданыңыз.

<?php
$stmt 
$pdo->prepare("INSERT INTO users (username, email) VALUES (:username, :email)");
$stmt->bindParam(':username'$_POST['username']);
$stmt->bindParam(':email'$_POST['email']);
$stmt->execute();
echo 
"Деректер сәтті сақталды!";
?>


PDO немесе MySQLi сияқты құралдармен дайындалған мәлімдемелер зиянды SQL кодының орындалуын болдырмайды.

3. CSRF Қорғанысы
CSRF шабуылдарына қарсы формаға бірегей токен қосу керек. Токенді тексеру арқылы тек шынайы сұраулар қабылданады.

<?php
session_start
();
$token bin2hex(random_bytes(32));
$_SESSION['csrf_token'] = $token;
?>


<form method="POST">
    <input type="hidden" name="csrf_token" value="<?php echo $token?>">
    <input type="text" name="username">
    <input type="submit" value="Жіберу">
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (
$_POST['csrf_token'] === $_SESSION['csrf_token']) {
        echo 
"Сұрау расталды!";
    } else {
        echo 
"CSRF токені қате!";
    }
}
?>



4. XSS Шабуылдарынан Қорғау
Пайдаланушы енгізген деректерді шығармас бұрын оларды тазалау керек. htmlspecialchars() функциясы бұл үшін тиімді.

<?php
$input 
"<script>alert('XSS');</script>";
$safe_output htmlspecialchars($inputENT_QUOTES'UTF-8');
echo 
$safe_output// <script>alert('XSS');</script> ретінде шығады, бірақ орындалмайды
?>



5. Файл Жүктеу Қауіпсіздігі
Егер форма файл жүктеуге мүмкіндік берсе, файл түрін және өлшемін тексеріңіз.

<?php
if (isset($_FILES['userfile'])) {
    
$allowed = ['jpg''png''pdf'];
    
$ext pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
    if (
in_array($ext$allowed) && $_FILES['userfile']['size'] < 2000000) {
        
move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/' $_FILES['userfile']['name']);
        echo 
"Файл сәтті жүктелді!";
    } else {
        echo 
"Рұқсат етілмеген файл немесе өлшемі тым үлкен!";
    }
}
?>



Қосымша Кеңестер
  • HTTPS қолданыңыз: Деректерді шифрлау үшін сайтыңызда SSL сертификатын орнатыңыз.
  • Шектеулі рұқсаттар: Дерекқор пайдаланушысына тек қажетті рұқсаттарды беріңіз.
  • Журнал жүргізу: Сұрауларды бақылау үшін логтар сақтаңыз.

Қорытынды
PHP формасының қауіпсіздігін қамтамасыз ету веб-әзірлеудің маңызды бөлігі. Жоғарыда келтірілген әдістер мен код үлгілері арқылы сіз сайтыңызды сенімді және қауіпсіз ете аласыз. Бұл шаралар сонымен қатар SEO-ны жақсартады, өйткені Google қауіпсіз сайттарды жоғары бағалайды. Егер сізге қосымша сұрақтар туындаса, PHP қауіпсіздігі бойынша тереңірек ақпарат алуға болады!