增加安全机制
This commit is contained in:
parent
f5e5f5c3b8
commit
78014142c6
|
|
@ -6,6 +6,10 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
// 从JSON文件获取车辆数据库
|
// 从JSON文件获取车辆数据库
|
||||||
let carDatabase = [];
|
let carDatabase = [];
|
||||||
let isDataLoaded = false;
|
let isDataLoaded = false;
|
||||||
|
|
||||||
|
// 添加搜索频率限制
|
||||||
|
let lastSearchTime = 0;
|
||||||
|
const SEARCH_DELAY = 1000; // 1秒内只能搜索一次
|
||||||
|
|
||||||
// 加载车辆数据
|
// 加载车辆数据
|
||||||
fetch('js/cars.json')
|
fetch('js/cars.json')
|
||||||
|
|
@ -22,6 +26,20 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
searchButton.addEventListener('click', function() {
|
searchButton.addEventListener('click', function() {
|
||||||
const plate = licensePlateInput.value.trim();
|
const plate = licensePlateInput.value.trim();
|
||||||
|
|
||||||
|
// 检查输入长度
|
||||||
|
if (plate.length < 3) {
|
||||||
|
showError('请输入至少3个字符进行搜索');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查搜索频率
|
||||||
|
const currentTime = new Date().getTime();
|
||||||
|
if (currentTime - lastSearchTime < SEARCH_DELAY) {
|
||||||
|
showError('搜索过于频繁,请稍后再试');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lastSearchTime = currentTime;
|
||||||
|
|
||||||
if (!plate) {
|
if (!plate) {
|
||||||
showError('请输入车牌号码');
|
showError('请输入车牌号码');
|
||||||
return;
|
return;
|
||||||
|
|
@ -33,11 +51,17 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 在数据库中查找车牌(支持模糊匹配,忽略大小写)
|
// 改进的模糊匹配逻辑 - 要求至少3个连续字符匹配
|
||||||
//const carInfo = carDatabase.find(car => car.plate.includes(plate));
|
const carInfo = carDatabase.find(car => {
|
||||||
const carInfo = carDatabase.find(car =>
|
const lowerPlate = car.plate.toLowerCase();
|
||||||
car.plate.toLowerCase().includes(plate.toLowerCase())
|
const searchPlate = plate.toLowerCase();
|
||||||
);
|
|
||||||
|
// 只有当搜索词长度>=3且能找到连续匹配时才返回true
|
||||||
|
if (searchPlate.length >= 3) {
|
||||||
|
return lowerPlate.includes(searchPlate);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
if (carInfo) {
|
if (carInfo) {
|
||||||
// 将车辆信息存储到 sessionStorage
|
// 将车辆信息存储到 sessionStorage
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue