Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menetapkan masa tamat tempoh dalam bentuk PHP untuk mengukuhkan langkah keselamatan

Bagaimana untuk menetapkan masa tamat tempoh dalam bentuk PHP untuk mengukuhkan langkah keselamatan

WBOY
WBOYasal
2023-06-24 09:21:101437semak imbas

Borang PHP ialah kaedah interaktif yang biasa digunakan dalam pembangunan laman web Ia boleh menerima input pengguna dan menghantar data kepada pelayan untuk diproses. Walau bagaimanapun, memandangkan data borang dihantar melalui HTTP, terdapat risiko keselamatan tertentu. Salah satunya ialah mudah bagi penyerang berniat jahat untuk menggunakan serangan ulangan untuk melakukan serangan penyamaran atau gangguan data Untuk mengelakkan serangan tersebut, kami boleh menetapkan masa tamat tempoh dalam bentuk PHP dan mengukuhkan langkah keselamatan. Artikel ini akan memperkenalkan cara menetapkan masa tamat tempoh dalam borang PHP untuk mengukuhkan perlindungan keselamatan.

  1. Apakah masa tamat tempohnya?

Masa tamat tempoh merujuk kepada menetapkan had masa sebelum borang diserahkan borang akan menjadi tidak sah. Mekanisme ini menghalang borang daripada digunakan oleh penyerang berniat jahat untuk melakukan pengubahan data atau serangan penyamaran melalui serangan ulang tayang. Pada masa yang sama, masa tamat juga boleh mengehadkan tempoh sah borang untuk mengelakkan data yang tidak berguna menduduki sumber pelayan.

  1. Cara menetapkan masa tamat tempoh

Anda boleh menggunakan teknologi sesi untuk menetapkan masa tamat tempoh dalam PHP Kod sampel adalah seperti berikut:

rreee

Maksud kod di atas ialah, Jika masa semasa tolak masa operasi terakhir lebih daripada 1800 saat (30 minit), sesi itu dimusnahkan.

  1. Cara menggunakan masa tamat tempoh untuk meningkatkan keselamatan borang

Selepas menetapkan masa tamat tempoh, kami juga perlu mengesahkan data borang apabila borang diserahkan, seperti kata kunci Lakukan pengesahan dan penapisan data pada setiap segmen untuk mengelakkan ancaman keselamatan seperti suntikan SQL, serangan XSS dan serangan CSRF. Berikut ialah beberapa langkah khusus:

3.1 Pengesahan Data

Apabila menerima data penyerahan borang, kami boleh menggunakan fungsi penapis PHP untuk menapis, mengesahkan dan membersihkan data penyerahan borang , meningkatkan keselamatan data. Fungsi penapis boleh mengesahkan jenis data, panjang, kes dan aksara khas Contoh kod adalah seperti berikut:

<?php
session_start();
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    session_unset();
    session_destroy();
}
$_SESSION['LAST_ACTIVITY'] = time();
?>

3.2 Mencegah suntikan SQL

Sebelum data borang disimpan dalam pangkalan data, kita boleh Mencegah suntikan SQL dengan menggunakan pengikatan parameter, aksara melarikan diri, dsb. Antaranya, pengikatan parameter boleh menggunakan pustaka PDO atau mysqli, dan aksara escape boleh menggunakan fungsi seperti addslashes. Kod sampel adalah seperti berikut:

<?php
// 过滤输入的字符串
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

// 验证电子邮箱格式
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

// 校验输入的 URL
$url = filter_input(INPUT_POST, 'url', FILTER_VALIDATE_URL);

// 验证IP地址
$ip = filter_input(INPUT_POST, 'ip', FILTER_VALIDATE_IP);
?>

3.3 Mencegah serangan XSS

Apabila mengeluarkan data borang, kami boleh menapis data yang diserahkan untuk mengelakkan serangan XSS. Anda boleh menggunakan htmlspecialchars PHP dan fungsi lain untuk menukar aksara khas kepada aksara melarikan diri HTML Kod sampel adalah seperti berikut:

<?php
// 参数绑定防止 SQL 注入
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->bindParam(':username', $username);
$stmt->execute();

// 转义字符串防止 SQL 注入
$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);
?>

3.4 Mencegah serangan CSRF

Untuk mengelakkan serangan CSRF, kita boleh. tambah csrf_token, digunakan untuk mengesahkan sama ada sumber borang itu sah. Anda boleh menggunakan sesi PHP untuk menyimpan token Kod sampel adalah seperti berikut:

<?php
// 输出转义后的字符串
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
?>
  1. Ringkasan

Dengan menetapkan masa tamat tempoh untuk borang PHP, anda boleh menghalang main semula dengan berkesan. serangan dan serangan penyamaran, dengan itu meningkatkan keselamatan borang. Selain itu, kami boleh mengukuhkan lagi keselamatan borang melalui pengesahan data, mencegah suntikan SQL, mencegah serangan XSS dan mencegah serangan CSRF. Dalam pembangunan laman web, pengukuhan perlindungan keselamatan adalah penting Kita harus bermula dari semua aspek untuk meningkatkan keselamatan laman web.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan masa tamat tempoh dalam bentuk PHP untuk mengukuhkan langkah keselamatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn