短信时间验证

在作短信接口的时候,短信接口的安全性值得注意。分享一个函数,服务器端检验60秒内不能重复发短信.php

    /**
     * 用于检测当前用户IP的可操做性,time_span为验证的时间间隔 秒
     *
     * @param string $ip_str  IP地址
     * @param string $module  操做的模块     *
     * @param integer $time_span 间隔
     * @param integer $id   操做的数据
     *
     * @return  boolean
     */
    function check_ip_operation($ip_str,$module,$time_span=0,$id=0)
    {
        if(empty($_SESSION[$module."_".$id."_ip"]))
        {
            $check['ip']    = $ip_str;//    get_client_ip();
            $check['time']    =    a_gmtTime();
            $_SESSION[$module."_".$id."_ip"] = $check;

            return true;  //不存在session时验证经过
        }
        else
        {
            $check['ip']    =    $ip_str;// get_client_ip();
            $check['time']    =    a_gmtTime();
            $origin    =    $_SESSION[$module."_".$id."_ip"];

            if($check['ip']==$origin['ip'])
            {
                if($check['time'] - $origin['time'] < $time_span)
                {
                    return false;
                }
                else
                {
                    $_SESSION[$module."_".$id."_ip"] = $check;
                    return true;  //不存在session时验证经过
                }
            }
            else
            {
                $_SESSION[$module."_".$id."_ip"] = $check;
                return true;  //不存在session时验证经过
            }
        }
    }
相关文章
相关标签/搜索