Rumah  >  Soal Jawab  >  teks badan

html5 - 关于PHP服务器时间的验证问题

我在做一个定时预约的时候,在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:我们验证使用的是阿里云的拖动验证,每一次验证都有记录值,如下图)

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

滿天的星座滿天的星座2736 hari yang lalu529

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-05-16 13:10:27

    Adakah rekod pemalam kod pengesahan pada pelayan anda? Jika tidak, mungkin masanya tidak disegerakkan.

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:10:27

    Pertama, anda melarang pengguna daripada mengakses halaman Namun, apabila pengguna menyerahkan borang, URL pelayan akses adalah berbeza, iaitu URL borang anda adalah indeks, tetapi indeks laluan permintaan pelayan digunakan untuk menyimpan. data melalui borang, jadi pengguna boleh menyimpan data secara terus Secara terus menghantar ke indeks/simpan, dan logik permintaan indeks/simpan anda tidak menetapkan had masa, jadi data boleh dimasukkan ke dalam pangkalan data

    .

    balas
    0
  • Batalbalas