最近网站经常被攻击,后来想到了一个利用php来防止网站受攻击的办法,下面是我的代码,代码不是最好的,根据自己的需求来做,下面来看看我的代码.
<?php /* *网站防ip攻击代码(anti-ip attack code website)2010-11-20,ver2.0 *mydalle.com anti-refresh mechanism *design by www.phprm.com */ //查询禁止ip $ip = $_server['remote_addr']; $fileht = ".htaccess2"; if (!file_exists($fileht)) file_put_contents($fileht, ""); $filehtarr = @file($fileht); if (in_array($ip . "rn", $filehtarr)) die("warning:" . " " . "your ip address are forbided by mydalle.com anti-refresh mechanism, if you have any question pls emill to shop@mydalle.com! (mydalle.com anti-refresh mechanism is to enable users to have a good shipping services, but there maybe some inevitable network problems in your ip address, so that you can mail to us to solve.)"); //加入禁止ip $time = time(); $fileforbid = "log/forbidchk.dat"; if (file_exists($fileforbid)) { if ($time - filemtime($fileforbid) > 30) unlink($fileforbid); else { $fileforbidarr = @file($fileforbid); if ($ip == substr($fileforbidarr[0], 0, strlen($ip))) { if ($time - substr($fileforbidarr[1], 0, strlen($time)) > 120) unlink($fileforbid); elseif ($fileforbidarr[2] > 120) { file_put_contents($fileht, $ip . "rn", file_append); unlink($fileforbid); } else { $fileforbidarr[2]++; file_put_contents($fileforbid, $fileforbidarr); } } } } //防刷新 $str = ""; $file = "log/ipdate.dat"; if (!file_exists("log") && !is_dir("log")) mkdir("log", 0777); if (!file_exists($file)) file_put_contents($file, ""); $allowtime = 60; //防刷新时间 $allownum = 5; //防刷新次数 $uri = $_server['request_uri']; $checkip = md5($ip); $checkuri = md5($uri); $yesno = true; $ipdate = @file($file); foreach ($ipdate as $k => $v) { $iptem = substr($v, 0, 32); $uritem = substr($v, 32, 32); $timetem = substr($v, 64, 10); $numtem = substr($v, 74); if ($time - $timetem < $allowtime) { if ($iptem != $checkip) $str.= $v; else { $yesno = false; if ($uritem != $checkuri) $str.= $iptem . $checkuri . $time . "1rn"; elseif ($numtem < $allownum) $str.= $iptem . $uritem . $timetem . ($numtem + 1) . "rn"; else { if (!file_exists($fileforbid)) { $addforbidarr = array( $ip . "rn", time() . "rn", 1 ); file_put_contents($fileforbid, $addforbidarr); } file_put_contents("log/forbided_ip.log", $ip . "--" . date("y-m-d h:i:s", time()) . "--" . $uri . "rn", file_append); $timepass = $timetem + $allowtime - $time; die("warning:" . " " . "pls don't refresh too frequently, and wait for " . $timepass . " seconds to continue, if not your ip address will be forbided automatic by mydalle.com anti-refresh mechanism! (mydalle.com anti-refresh mechanism is to enable users to have a good shipping services, but there maybe some inevitable network problems in your ip address, so that you can mail to us to solve.)"); } } } } if ($yesno) $str.= $checkip . $checkuri . $time . "1rn"; file_put_contents($file, $str); ?>
文章链接:
随便收藏,请保留本文地址!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.
