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