Bagaimana untuk menambah mekanisme pengesahan Token dalam bentuk PHP

王林
Lepaskan: 2023-06-24 18:08:01
asal
1084 orang telah melayarinya

Dalam pembangunan web, borang adalah saluran komunikasi yang penting antara pengguna dan pelayan. Untuk memastikan keselamatan, kami perlu menambah mekanisme pengesahan Token semasa menyerahkan borang untuk mengelakkan serangan oleh penyerang berniat jahat.

Prinsip asas pengesahan Token ialah: pelayan menjana nombor rawak dan menghantar Token kepada pelanggan dengan menambah medan tersembunyi dalam borang Apabila pelanggan menyerahkan borang, Token dihantar semula ke pelayan mengesahkan ketepatan Token Jika ia sepadan, Benarkan penyerahan borang, jika tidak, tolak penyerahan.

Di bawah ini kami akan memperkenalkan cara melaksanakan mekanisme pengesahan Token dalam PHP.

  1. Tambah medan tersembunyi dalam borang

Kita boleh menggunakan fungsi rand() PHP untuk menjana nombor rawak sebagai Token, dan kemudian menambah Token ke medan tersembunyi dalam borang tersebut

<?php
$token = rand(); //生成随机数作为Token
?>
<form action="submit.php" method="post">
  <input type="hidden" name="token" value="<?php echo $token; ?>">
  <!-- 其他表单元素 -->
  <button type="submit">提交</button>
</form>
Salin selepas log masuk

    Sahkan Token
Selepas borang diserahkan, kami perlu mengesahkan sama ada Token dalam borang itu betul. Kami boleh menyimpan Token dalam sesi pelayan dan membandingkan Token yang diserahkan oleh borang dengan Token yang disimpan dalam sesi Kod tersebut adalah seperti berikut:

<?php
session_start(); // 开启session
$token = $_POST['token']; //获取表单提交的Token值
if ($token === $_SESSION['token']) { //判断Token是否匹配
  // ... 其他操作
} else {
  echo 'Token验证失败';
}
?>
Salin selepas log masuk

Nota: Selepas setiap penyerahan dan pengesahan borang berjaya, kami perlu menjana semula. yang baharu. Token dan kemas kini nilai Token yang disimpan dalam sesi. Ini mengelakkan penyerahan borang berulang dan serangan berniat jahat.

<?php
session_start(); // 开启session

// 验证Token
if ($_POST['token'] !== $_SESSION['token']) {
  die('Token验证失败');
}

// 更新Token
$_SESSION['token'] = rand();
// ... 其他操作
?>
Salin selepas log masuk

Dengan cara ini, kami berjaya menambah mekanisme pengesahan Token pada borang PHP dan meningkatkan keselamatan tapak web.

Atas ialah kandungan terperinci Bagaimana untuk menambah mekanisme pengesahan Token dalam bentuk PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan