Bu Sınıf Neyi Korur?Sunucunuzdaki herhangi bir php dosyasına (index.php vs) saldırıp saniyede 30-40 kere açıp mysqli kasıyorlar ve sunucu iptal oluyor bir süre sonra (şahsen yaşadım ve saydım saniye kaç kere giriş yapılıyor diye 37 çıkmıştı, zaten atak yapan kişiye sordum amacı ne programın diye 80 portundan girip mysqli kasıyormuş).Kullanacaksanız yazıyı tamamen okuyun. Nasıl Korur?İstenilirse .htaccess dosyasından IP ban verir.Sınır aşılınca bilişim suçlarına yönlendirir.Sunucunuzda XML desteği olması lazım. Sınıfı Tanıyalım final class Koruma{
/*Özellikler*/
public string $xml; /*sayaç olarak tutulacak xml dosyasını gösterir (o dosyanın chmod ayarları 777 olmalı*/
public int $htacess; /*.htaccess ile ip ban olup olmayacağı 0 dan farklı ise o değer kadar saniye ip ban verir (değeri 50 ise 50 saniye ip ban verir 0 ise ban vermez)*/
public int $reset; /*bir ip'nin bağlantı sayısı bu değer saniye sonra 0 olur*/
public int $izin; /*bir ip'nin reset saniyede sayfayı kaç defa açılabileceğini belirler*/
/*Fonksiyonlar*/
public void Izin(void); /*ip'ye izin olup olmadığını döndürür ve diğer işlemleri yapar (.htaccess ban, ip ekleme süre 0'lama vs.).*/
public void Izinsiz(void); /*Izin fonksiyonun false değeri döndürdüğü zaman yapılacak işlemler if ile kontrolden sonra kullanılır*/
}
.htaccess Dosyası Kullanacaksam Neler Bulunmalı?
order deny,allow
#koruma
kodları .htaccess dosyanızın her hangi bir yerinde en fazla 1 tane bulunmalıdır (#koruma dahil yorum satırıdır ama yeni eklenecek ip'nin o satıra eklenmesi gerektiğini ifade eder.).Ayrıca chmod ayarları 777 olmalıdır. Nasıl Kullanabilirim Bu Sınıfı? [LEFT] final class Koruma{
public $xml,$htaccess,$izin,$reset;
public function Izin(){
if(file_exists($this->xml.'.xml')){
$sx=simplexml_load_file($this->xml.'.xml');
$ip=$sx->xpath('ping[@ip='.$_SERVER['REMOTE_ADDR'].']');
if(count($ip)){
/*htaccess açma işlemleri*/
if($this->htaccess){
if(file_exists('.htaccess')){
$h=fopen('.htaccess','rt');$ha=fread($h,filesize('.htaccess'));fclose($h);
preg_match('/#([0-9]+)
deny from '.$_SERVER['REMOTE_ADDR'].'/',$ha,$ban);
if($ban[1]bu kodları koruma.php dosyası adında kaydedip,
bu kodlarıda koruma.xml dosyası adında chmod ayarları 777 olarak kaydedip kullanabilirsiniz. Buların Hepsini tamam ise aşağıdaki php kodlarımızı korumak istediğimiz sayfaya yerleştiriyoruz
include('koruma.php');
$koruma=new Koruma;
$koruma->xml='koruma'; /* koruma.xml dosyasına kaydedileceğini belirtir 777 olmalı */
$koruma->htaccess=7*24*60*60; /* özellik 0 dan farklıyken .htaccess varsa verilen değerdeki
saniye kadar ip ban verir (bu 1 haftalık) */
$koruma->reset=2; /* ip bağlantı sayısı 2 saniyede bir 0 olur */
$koruma->izin=1; /* 1 ip 2 saniyede 5 kere açabilir bu sayfayı */
/*
$mysqlbaglantim=mysql_connect(...);
mysql baglantisi sart degil $koruma->Izinsiz('$mysqlbaglantim'); kısmında
$mysqlbaglantim null döner sadece
*/
if($koruma->Izin()){
print 'bişeyler yap';
}else{
/* bağlantı ' tırnak içinde yazılmalıdır */
$koruma->Izinsiz('$mysqlbaglantim');
}
?>
Alıntıdır
Saygılar..