O‘zbеkiston rеspublikasi axborot va kommunikatsion tеxnologiyalarini rivojlantirish vazirligi


$_SERVER["PHP_SELF"] ekspluatatsiyasini qanday oldini olish mumkin?


Download 61.07 Kb.
bet3/4
Sana21.02.2023
Hajmi61.07 Kb.
#1218774
1   2   3   4
Bog'liq
Gaybullayeva-PHP-2

$_SERVER["PHP_SELF"] ekspluatatsiyasini qanday oldini olish mumkin?


$_SERVER["PHP_SELF"] ekspluatatsiyasini htmlspecialchars() funksiyasi yordamida oldini olish mumkin.
Shakl kodi quyidagicha ko'rinishi kerak:
">
htmlspecialchars() funksiyasi maxsus belgilarni HTML ob'ektlariga aylantiradi. Endi agar foydalanuvchi PHP_SELF o'zgaruvchisidan foydalanishga harakat qilsa, bu quyidagi natijaga olib keladi:

Ekspluatatsiyaga urinish muvaffaqiyatsiz tugadi va hech qanday zarar yetkazilmaydi!

PHP yordamida forma ma'lumotlarini tekshirish


Biz qiladigan birinchi narsa barcha o'zgaruvchilarni PHP ning htmlspecialchars() funksiyasi orqali o'tkazishdir.
Biz htmlspecialchars() funksiyasidan foydalanganda; agar foydalanuvchi matn maydoniga quyidagilarni yuborishga harakat qilsa:

- bu bajarilmaydi, chunki u HTMLdan qochish kodi sifatida saqlanadi, masalan:

Kod endi sahifada yoki elektron pochta ichida ko'rsatilishi xavfsiz.
Foydalanuvchi shaklni yuborganida biz yana ikkita narsani qilamiz:

  1. Foydalanuvchi kiritgan maʼlumotlardan keraksiz belgilarni (qoʻshimcha boʻsh joy, yorliq, yangi qator) olib tashlang (PHP trim() funksiyasi bilan)

  2. Foydalanuvchi kiritgan maʼlumotlardan teskari chiziqchalarni (\) olib tashlang (PHP stripslashes() funksiyasi bilan)

Keyingi qadam biz uchun barcha tekshiruvlarni bajaradigan funktsiyani yaratishdir (bu bir xil kodni qayta-qayta yozishdan ko'ra ancha qulayroq).
Biz test_input() funksiyasini nomlaymiz.
Endi biz har bir $_POST o'zgaruvchisini test_input() funktsiyasi bilan tekshirishimiz mumkin va skript quyidagicha ko'rinadi:

Misol


// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {


$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}

function test_input($data) {


$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>


Download 61.07 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling