html5 - 关于PHP服务器时间的验证问题
滿天的星座
滿天的星座 2017-05-16 13:08:27
0
2
473

我在做一个定时预约的时候,在form表单有一个验证条件是判断了当前时间是否达到设置时间点,如果没到的话,是不能执行的

<?php
ini_set('date.timezone','Asia/Shanghai');
$setTime = date("Y-m-d");
$setTime = strtotime("$setTime 10:30:00");
 if(time() < $setTime){
     exit("未到预约时间,请稍后访问");
 }
?>

<form>……</form>

按照逻辑的话如果时间不到,表单内容是没办法访问和提交的
但是我通过表单验证码的插件记录可以看到10点29分40秒钟左右,已经有用户完成了form表单里面的验证码验证
我们自己测试时候,也不知道该用户如何操作的
(PS:我们验证使用的是阿里云的拖动验证,每一次验证都有记录值,如下图)

大神有没有谁知道这个逻辑的漏洞在什么地方,应该如何限制处理

滿天的星座
滿天的星座

répondre à tous(2)
Ty80

Le plug-in enregistre-t-il le code de vérification sur votre serveur ? Sinon, l'heure n'est peut-être pas synchronisée.

Peter_Zhu

Tout d'abord, vous interdisez aux utilisateurs d'accéder à la page. Cependant, lorsque l'utilisateur soumet le formulaire, l'URL du serveur d'accès est différente, c'est-à-dire que l'URL de votre formulaire est index, mais le chemin de requête du serveur index/save est utilisé pour enregistrer le les données via le formulaire, afin que l'utilisateur puisse directement enregistrer les données dans l'index/sauvegarder, et votre logique de demande d'indexation/sauvegarde ne fixe pas de limite de temps, les données peuvent donc être insérées dans la base de données

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!