時(shí)間指定の予約をする場合、現(xiàn)在時(shí)刻が設(shè)定された時(shí)刻に達(dá)しているかどうかを判斷する確認(rèn)條件がフォームにあります。到著していない場合は実行できません。
<?php
ini_set('date.timezone','アジア/上海');
$setTime = date("Y-m-d");
$setTime = strtotime("$setTime 10:30:00");
if(time() < $setTime){
exit("予約時(shí)間になっていませんので、後でお越しください。");
}
?>
<form>……</form>
ロジックによれば、時(shí)間が経過していない場合、フォームのコンテンツにアクセスして送信することはできません。
しかし、フォーム検証コードのプラグイン レコードから、10:29 あたりでそれがわかります。 40、すでにユーザーがいます フォームで認(rèn)証コードの認(rèn)証を完了しました
自分たちでテストしたとき、ユーザーがどのように操作したかわかりませんでした
(追記:検証にはAlibaba Cloudのドラッグ認(rèn)証を使用しました、そしてそれぞれ以下に示すように、検証には値が記録されています)< /span>
このロジックの抜け穴がどこにあり、どのように制限すべきかを知っている人はいますか?
認(rèn)証コードのプラグイン記録はサーバー上にありますか?そうでない場合は、時(shí)間が同期されていない可能性があります。
まず、ユーザーがページにアクセスすることを禁止していますが、ユーザーがフォームを送信するとき、アクセスサーバー URL は異なります。つまり、フォーム URL はインデックスですが、サーバーリクエストパスのインデックス/保存が保存に使用されます。フォームを通じてデータを送信できるため、ユーザーはインデックス/保存に直接投稿でき、インデックス/保存リクエスト ロジックには時(shí)間制限が設(shè)定されていないため、データをデータベースに挿入できます