我此次使用的是前端+后端实现的一个表单过期处理。
公司有个表单需要防止攻击,就做了个表单提交验证。完全是自己的思路。可以用作api的动态key值。
前端:
<?php$rand = time();$r = $rand.md5($rand."www.kekc.cn");?><form action=""><input type="hidden" name="r" value="<?php echo $r;?>"><input type="submit" value="提交"/></form><?php $rand = time(); $r = $rand.md5($rand."www.kekc.cn"); ?> <form action=""> <input type="hidden" name="r" value="<?php echo $r;?>"> <input type="submit" value="提交"/> </form><?php $rand = time(); $r = $rand.md5($rand."www.kekc.cn"); ?> <form action=""> <input type="hidden" name="r" value="<?php echo $r;?>"> <input type="submit" value="提交"/> </form>
后端:
<?php$randmd5 = $_REQUEST['r'];//校验值$r = mb_substr($randmd5, 0 , 10);//从左边第一位字符起截取3位字符,时间戳截取$rmd5 = mb_substr($randmd5, 10 , 32);//提取的随机数字md5$rmd52 = md5($r."www.kekc.cn");//根据随机数字生产md5if($rmd5 == $rmd52){//验证是否是伪造的提交$posttime = $r;$nowtime = time();$postjian = $nowtime - $posttime;if($postjian > 300){exit("使用了5分钟之前的r值!请刷新页面!");}//时间校验,60*5秒,5分钟$websiteid = $_REQUEST['fields']['websiteid'];//网站IDecho "验证成功!";}else{echo "请勿伪造数据进行提交!";}?><?php $randmd5 = $_REQUEST['r'];//校验值 $r = mb_substr($randmd5, 0 , 10);//从左边第一位字符起截取3位字符,时间戳截取 $rmd5 = mb_substr($randmd5, 10 , 32);//提取的随机数字md5 $rmd52 = md5($r."www.kekc.cn");//根据随机数字生产md5 if($rmd5 == $rmd52){//验证是否是伪造的提交 $posttime = $r; $nowtime = time(); $postjian = $nowtime - $posttime; if($postjian > 300){exit("使用了5分钟之前的r值!请刷新页面!");}//时间校验,60*5秒,5分钟 $websiteid = $_REQUEST['fields']['websiteid'];//网站ID echo "验证成功!"; }else{ echo "请勿伪造数据进行提交!"; } ?><?php $randmd5 = $_REQUEST['r'];//校验值 $r = mb_substr($randmd5, 0 , 10);//从左边第一位字符起截取3位字符,时间戳截取 $rmd5 = mb_substr($randmd5, 10 , 32);//提取的随机数字md5 $rmd52 = md5($r."www.kekc.cn");//根据随机数字生产md5 if($rmd5 == $rmd52){//验证是否是伪造的提交 $posttime = $r; $nowtime = time(); $postjian = $nowtime - $posttime; if($postjian > 300){exit("使用了5分钟之前的r值!请刷新页面!");}//时间校验,60*5秒,5分钟 $websiteid = $_REQUEST['fields']['websiteid'];//网站ID echo "验证成功!"; }else{ echo "请勿伪造数据进行提交!"; } ?>
其实不只是form表单提交,改改就是自己的了,貌似改了用作api接口程序演示站点很合适的样子,看那些大公司应该就是这样搞的。
© 版权声明
THE END
暂无评论内容