Apache ve PHP’nin versiyon bilgilerini gizleme

Apache ve PHP’nin versiyon bilgilerini headerdan gizleme ihtiyacı duydum. Dursun diye buraya da koyayım bari.

Apache’nin versiyon bilgilerini saklamak için :

/etc/httpd/conf/httpd.conf dosyasında ( ya da sizin conf dosyasınız nerede ise ) aşağıdaki parametreleri ayarlayın.

ServerSignature Off
ServerTokens ProductOnly

Siz aşağıdaki tablodan yararlanıp isterseniz başka değer verebilirsiniz.

ServerToken Görüntülenecek Bilgi
ProductOnly Server: Apache
Major Server: Apache/2
Minor Server: Apache/2.0
Minimal Server: Apache/2.0.55
OS Server: Apache/2.0.55 (Redhat)
Full(veya boş) Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5
 

Parametreleri ayarlamadan önce :

root@localhost:~# curl -I http://www.kursaddara.com
HTTP/1.1 200 OK
Date: Mon, 16 Apr 2012 06:45:50 GMT
Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.9
Connection: close
Content-Type: text/html

Parametreleri ayarladıktan sonra :

root@localhost:~# curl -I http://www.kursaddara.com
HTTP/1.1 200 OK
Date: Mon, 16 Apr 2012 06:47:56 GMT
Server: Apache
X-Powered-By: PHP/5.2.9
Connection: close
Content-Type: text/html

Gördüğünüz gibi Apache bilgileri gizlendi.

Şimdi PHP versiyon bilgilerini gizleyelim.

/etc/php.ini dosyasında ( sizin config dosyanız nerede ise ) aşağıdaki parametreleri ayarlayın.

expose_php Off

Parametreleri ayarladıktan sonra :

root@localhost:~# curl -I http://www.kursaddara.com
HTTP/1.1 200 OK
Date: Mon, 16 Apr 2012 06:48:47 GMT
Server: Apache
Connection: close
Content-Type: text/html

Gördüğünüz gibi PHP versiyon bilgisi gitti.

Bu parametreleri değiştirdikten sonra apache’yi restart etmeniz gerekmektedir.

Posted in Apache, Linux, PHP on April 16th, 2012 by Kürşad DARA | | 0 Comments

Facebook uygulamanızı kullanan kullanıcıların duvarına otomatik veri yollama

Facebook uygulamalarınızı kullanan kullanıcıların duvarlarına otomatik veri yollamak için aşağıdaki kod bloğunu kullanabilirsiniz.

$attachment = array('message' => 'mesajınız',
                'name' => 'Uygulama adı',
                'caption' => "Uygulama adı",
                'link' => 'Uygulama linki',
                'description' => 'İçerik',
                'picture' => 'resim tam linki'
                );


    $result = $facebook->api('/me/feed/',
                                'post',
                                $attachment);

Not : İlgili javascriptleri ve api kodlarını da sayfanıza include etmiş olmanız gerekmektedir.

Posted in PHP, Web Development on June 14th, 2011 by Kürşad DARA | | 0 Comments

Yazdığınız PHP programlarının güvenliği için bir checklist

İncelenmesi gereken güzel bir checklist.

Güvenli mi yazdığınız programlar ?

Checklist için tıklayınız.

Posted in PHP, Web Development on May 12th, 2011 by Kürşad DARA | | 0 Comments

Facebook sayfalarda kullanıcının beğenip beğenmediğini tespit etme.

Kodunuzun en başında aşağıdaki kodu kullanırsanız kullanıcının sayfayı beğenip beğenmediğini anlayabilirsiniz.


function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
  }
  if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
      echo "Sayfayı beğendiğiniz için teşekkürler";
    } else {
      echo "Önce sayfayı beğenmeniz gerekmektedir.";
       echo("< s c r i p t > top.location.href='http://www.facebook.com/pages/blabla/198687143423423'< / s c r i p t >");
    } 
  }

Posted in PHP, Web Development on May 11th, 2011 by Kürşad DARA | | 0 Comments

Bağlantı cihazına göre web sitesine otomatik yönlendirme.

Web sitenizin pc ve mobile versiyonunu yaptıysanız ve otomatik yönlendirme yapmak isterseniz aşağıdaki kodu kullanabilirsiniz.

< ?php

$mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
    strtolower($_SERVER['HTTP_USER_AGENT']))){
    $mobile_browser++;
    }

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
    ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
    $mobile_browser++;
    }

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
    'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
    'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
    'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
    'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
    'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
    'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
    'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)){
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
    $mobile_browser=0;
    }


if($mobile_browser>0){
   header('Location: http://siteniz/mobile_versiyonu'); 
}
  // else {
  // header('Location: http://siteniz/pc_versiyonu');
  // }
   
?>

Posted in PHP, Web Development on April 26th, 2011 by Kürşad DARA | | 0 Comments

Php Curl ile bir sayfadan resim kaydetmek.

 
< ?php
$url = "http://www.bilgiakademisi.net/images/s/logo.jpg";

$agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.9) ";
$agent .= "Gecko/20061206 Firefox/1.5.0.9';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$httpfile  = curl_multi_getcontent ($ch);
file_put_contents("/tmp/tmp.jpg",$httpfile);
?>

Posted in Linux, PHP on January 26th, 2009 by Kürşad DARA | | 0 Comments