Menangani Browser dengan JavaScript Disable

JavaScript dibutuhkan pada hampir semua website modern. Tanpanya, maka sebuah website tidak akan berjalan sesuai keinginan. Namun apa yang harus dilakukan jika client men-disable dukungan terhadap JavaScript? Solusi yang paling sederhana adalah dengan memberikan peringatan pada client untuk mengizinkan browser menjalankan JavaScript.

Pada sebuah dokumen HTML, JavaScript disisipkan di antara tag <script> dan </script>. Selain itu juga ada tag <noscript>, yang akan dijalankan pada saat JavaScript di-disable pada browser.

<script>kode di dalam sini akan dieksekusi saat javascript enable</script>
<noscript>kode di dalam sini akan dieksekusi saat javascript disable</noscript>

Untuk menangani client yang men-disable JavaScript maka perlu me-redirect-nya ke sebuah halaman yang berisi peringatan untuk meng-enable JavaScript. Namun, bagaimana untuk me-redirect halaman tanpa menggunakan sebuah script? Yaitu dengan menggunakan HTML meta tag yang bernama meta refresh. Meta tag ini akan me-redirect user ke halaman lain dalam interval yang sudah ditentukan pada header.

<noscript>
  <meta http-equiv="Refresh" content="1; url=warning.html">
</noscript>

Snippet yang ada di dalam tag <noscript> di atas adalah sebuah meta refresh yang menginstruksikan browser untuk me-refresh halaman website secara otomatis dalam interval yang sudah ditentukan dalam atribut content (dalam satuan detik). Atribut url berisi halaman yang dituju untuk menampilkan pesan peringatan.

11. January 2012 by Sibudi
Categories: Troubleshooting | Tags: , , | 3 comments

Update Tahun Copyright Secara Otomatis pada Footer

Tahun baru telah tiba, saatnya untuk mengganti tahun copyright pada bagian footer website/blog. Jika webmaster lupa menggantinya, sebuah website akan tampak ketinggalan tahun 😀 Jadi kita akan membuat sebuah kode yang akan melakukan pekerjaan meng-update tahun secara otomatis. Berikut ini adalah sebuah snippet untuk meng-update tahun copyright secara otomatis pada footer sebuah website.

<?php 
$copyYear = 2011; 
$curYear = date('Y'); 
echo '&copy;' . $copyYear . (($copyYear != $curYear) ? ' - ' . $curYear : ''); 
?>

Jangan lupa untuk mengganti variabel $copyYear sesuai dengan tahun terbit website/blog. Variabel $curYear akan secara otomatis berubah sesuai dengan tahun yang sedang berjalan di komputer server. Pada contoh di bagian footer blog ini (pada saat tulisan ini dibuat) menunjukkan tahun 2011 – 2012. Untuk website yang baru saja terbit, hanya akan memunculkan $copyYear.

Snippet di atas juga bisa diterapkan untuk blog yang menggunakan WordPress. Letakkan pada bagian footer.php sesuai theme yang digunakan.

03. January 2012 by Sibudi
Categories: PHP | Tags: , , | 7 comments

Validasi File Upload di PHP

Validasi file upload sangat penting dilakukan karena adanya fitur mengunggah file ke web server adalah kegiatan yang cukup berbahaya. Ambil contoh pada sebuah web yang mengijinkan user untuk meng-upload foto/gambar bisa jadi dijadikan celah bagi para hacker untuk meletakan script berbahaya pada server.

Berbekal beberapa baris kode PHP kita sudah bisa membuat file upload sederhana. Namun hanya mengandalkan script sederhana tersebut tidak cukup untuk membuat file upload yang bisa diandalkan.

Untuk meminimalkan celah pada fitur file upload, dapat dilakukan dengan cara memverifikasi jenis file yang diupload. Kita tidak boleh mengandalkan informasi dari ekstensi file atau dari nilai $_FILES['berkas']['type'] atau dari mime type karena ketiga informasi tersebut bisa dipalsukan. Lebih baik menggunakan fungsi PHP exif_imagetype() untuk memeriksa signature dari file yang diupload atau fungsi PHP getimagesize() untuk memperoleh ukuran gambar.

$fileType = exif_imagetype($_FILES['myFile']['tmp_name']);
$allowed = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG);
if (!in_array($fileType, $allowed)) {
  echo "hanya diijinkan untuk meng-upload file gambar (gif, jpg, atau png)";
}

Namun tidak menutup kemungkinan, fungsi PHP di atas juga belum cukup untuk menghentikan hacker yang kelewat kreatif. Jadi perlu ditambahkan juga pemeriksaan ekstensi file, dan ubah paksa file .php menjadi file .jpg sehingga kode php yang mungkin lolos dari pemeriksaan pertama tidak bisa dieksekusi di server.

<form action="" method="post" enctype="multipart/form-data">
 <input type="file" name="myFile"/>
 <input type="submit" value="Upload"/>
</form>

<?php
define("UPLOAD_DIR", "images/");

if (!empty($_FILES['myFile']['name'])) {
	
  // verifikasi file gambar (GIF, JPEG, atau PNG)
  $fileType = exif_imagetype($_FILES['myFile']['tmp_name']);
  $allowed = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG);
  if (!in_array($fileType, $allowed)) {
    echo "hanya diijinkan untuk meng-upload file gambar (gif, jpg, atau png)";
  }
	
  else{
    $myFile = $_FILES['myFile'];


    // ubah paksa nama file yg mengandung selain huruf, angka, ".", "_", dan "-" dengan regex
    $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile['name']);

    // periksa ekstensi file
    $parts = pathinfo($name);		
    if (isset($parts['extension'])) {
      $ext = $parts['extension'];
			
      if ($ext !== 'jpg' && $ext !== 'gif' && $ext !== 'png')
        $ext = "jpg";
			
	$name = $parts['filename'] . '.' . $ext;
      }
		
      else { // jika file tidak memiliki ekstensi maka berikan ekstensi .jpg
        $ext = 'jpg';
	$name = $parts['filename'] . '.jpg';
      }

      // simpan file
      move_uploaded_file($myFile['tmp_name'], UPLOAD_DIR . $name);
  }
}

Sebagai tambahan, mungkin juga perlu untuk membatasi ukuran file yang diupload untuk melindungi website dari serangan yang mencoba mengganggu network traffic atau system load.

14. December 2011 by Sibudi
Categories: PHP | Tags: , , | 7 comments

Menghilangkan Versi WordPress dari Kode HTML

Menghilangkan informasi tentang versi berapa WordPress yang digunakan adalah ide yang bagus. Adanya informasi yang menunjukan versi WordPress yang diinstal, dapat sedikit membantu hacker untuk menyelidiki kelemahan sebuah blog. Dengan sedikit trik, kita bisa menyembunyikan fakta bahwa WordPress yang diinstal bukan merupakan versi terbaru.

Sebelumnya kita pelajari dulu bagaimana untuk melihat versi WordPress. Klik view source atau tekan ctrl + u untuk melihat kode html yang dihasilkan WordPress. Perhatikan ada

<meta name="generator" content="WordPress 3.2.1" />

Cara termudah yang disarankan untuk menghilangkan versi WordPress adalah dengan menginstal sebuah plugin. Namun trik berikut ini menurut saya lebih mudah, tanpa plugin. Edit dan tambahkan langsung di file function.php pada folder themes yang digunakan.

remove_action('wp_head', 'wp_generator');

Setelah ditambahkan sebaris kode di atas pada file function.php, coba kita periksa dengan mengklik view source pada browser. Jika generator meta tidak hilang, mungkin ditulis hard-coded di file header.php. Cari dan hapus kode di bawah ini:

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

Sebagai tambahan untuk trik yang pertama, dapat diganti menggunakan kode di bawah ini untuk menghapus semua generator meta versi WordPress, termasuk untuk menghapus tanda http://wordpress.org/?v=3.2.1 pada RSS feed. Bagi yang belum tau, tanda ini terletak pada source code RSS feed WordPress, pada bagian atas. Tanda ini tidak terhapus jika hanya menggunakan kode pada trik pertama di atas.

function remove_version() {  
   return '';  
}  
add_filter('the_generator', 'remove_version');

Terakhir, coba buka alamat blog Anda ditambah dengan readme.html (misal: http://blogsaya.com/readme.html). Halaman tersebut berisi deskripsi lengkap versi WordPress yang digunakan.
readme version wordpress

Saya rasa semua juga sudah tau, tinggal hapus saja file readme.html di direktori utama WordPress. Jika tidak ingin menghapusnya, cukup hapus nomor versi yang terletak di atas.

08. December 2011 by Sibudi
Categories: Troubleshooting | Tags: , , | 7 comments

Cara Melihat Private Foto di Facebook

Melihat private foto di Facebook bukanlah hal yang tidak mungkin. Di bawah ini adalah cara melihat private foto di Facebook dengan memanfaatkan bug yang ada di sistem report Facebook.

Peringatan:
Sangat disarankan untuk menggunakan dummy account, bukan account Anda yang sebenarnya. Saya tidak bertanggungjawab jika Facebook menutup account Anda dengan alasan melanggar kebijakan mereka.

Langkah 1:
Siapkan sebuah account facebook yang ingin dilihat private fotonya
private foto facebook 1

Langkah 2:
Klik pada Report/block. Dari popup menu yang muncul, pilih Inappropriate profile photo kemudian tekan Continue.
private foto facebook 2

Langkah 3:
Pilih Nudity or pornography kemudian tekan Continue.
private foto facebook 3

Langkah 4:
Centang pada Report to Facebook, kosongkan pilihan yang lain. Kemudian tekan Continue.
private foto facebook 4

Langkah 5:
Pilih pada Help us take action by selecting additional photos to include with your report, kemudian tekan Continue.
private foto facebook 5

Langkah 6:
Kini Anda bisa melihat foto facebook yang di-private 🙂
private foto facebook 6

Sumber: http://forum.bodybuilding.com/showthread.php?t=140261733

06. December 2011 by Sibudi
Categories: Off Topic | Tags: | 7 comments

← Older posts

Newer posts →