Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menambah mekanisme pengesahan Token dalam bentuk PHP

Bagaimana untuk menambah mekanisme pengesahan Token dalam bentuk PHP

王林
王林asal
2023-06-24 16:54:071085semak imbas

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>

    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验证失败';
}
?>

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();
// ... 其他操作
?>

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!

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