现在网络攻击非常严重,作为一个合格的程序员必须懂得如何处理网站安全问题,比如一个API接口如果不处理,可能会被不良人员恶意调用,占用服务器资源。
这里我的站长站分享一个简单的PHP限制同IP一天访问次数方法,适合不太懂程序的朋友使用,但是不是非常完全,但肯定可以给不法人员带来限制。
简单的PHP限制访问次数
$t = strtotime(date('Y-m-d 23:59:59')); if(! isset($_COOKIE['frequency'])) { setcookie('frequency', 1, $t); } else { if($_COOKIE['frequency'] >= 5) exit( '<script>alert("每天只能免费使用5次")</script>'); setcookie('frequency', $_COOKIE['frequency']+1, $t); }
IP+Cookie的方法,本地判断处理限制方法,但可以通过清楚浏览器COOKIE或禁止COOKIE来绕过。
下面的方法为写入用户IP来判断的方法,服务端判断处理限制方法。
if(isset($_POST['sub'])){ $answer=$_POST['answer']; if(!empty($answer)){ require("conn.php"); // 引入数据库文件 // 获取客户端IP $ip=$_SERVER['REMOTE_ADDR']; $insertsql="insert into user(ip,svote)values('$ip','$answer')"; $selectsql="select * from user whereip='$ip'"; $value=mysql_query($selectsql); if(mysql_num_rows($value)==0){ //如果该IP还未投过票 $result=mysql_query($insertsql); // 执行插入 if($result){ echo "<script>alert('投票成功!');</script>"; }else{ echo "<script>alert('投票失败!');</script>"; } }else{ echo "<script>alert('您已经投过票了!');</script>"; } }else{ echo"<script>alert('您还没有进行选择!');</script>"; } echo"<br/>";