MacFUSE: Melebarkan sayap filesystem Mac OS X

Filesystem adalah metode yang digunakan komputer untuk menyusun berkas-berkas di dalam medium penyimpanan, seperti cakram padat, drive flash, compact disc. Tiap-tiap sistem operasi punya filesystem bawaan sendiri-sendiri. Windows 98 misalnya mendukung keluarga filesystem yang disebut sebagai FAT (terdiri atas FAT32, FAT16), Windows NT memiliki filesystem yang disebut sebagai NTFS. Windows 2000 ke atas mendukung baik FAT maupun NTFS.Mac OS X memiliki filesystem bawaan yang diberi nama HFS+. Selain itu sistem operasi Apple tersebut juga mendukung UFS dan FAT. Dukungan Mac OS X terhadap semua filesystem ini mencakup baik proses membaca maupun menulis.Mac OS X mendukung pula NTFS. Namun dukungan ini parsial. Storage yang diformat dalam NTFS dapat dibaca oleh Mac OS X, namun data tidak dapat dituliskan.Kebanyakan medium penyimpanan eksternal seperti flash drive biasanya menggunakan FAT, yang didukung sepenuhnya oleh Windows dan Mac OS X. Namun hard drive eksternal kadang-kadang menggunakan NTFS. Ini biasanya dilakukan buat mengatasi kekurangan FAT, yang tak dapat menampung berkas berukuran lebih besar dari 2GB. Video beresolusi tinggi serta berkas image ISO (yang bisa digunakan untuk membakar data ke DVD) tak jarang melampaui batas ini.Dukungan parsial terhadap NTFS di Mac OS X tentu saja menjadi batu sandungan bagi pemakai Mac yang ingin berinteroperasi dengan pemakai Windows. Untungnya kita dapat mengatasi masalah ini menggunakan kombinasi peranti lunak MacFUSE dan NTFS-3G.

Berasal dari Linux
MacFUSE sebenarnya merupakan port dari teknologi FUSE yang dikembangkan pada sistem operasi Linux. FUSE (Filesystem in Userspace) memungkinkan pengembang menambahkan dukungan untuk filesystem virtual. Saat ini misalnya sudah ada peranti lunak yang memanfaatkan FUSE untuk memungkinkan Gmail, Wikipedia, dan Flickr diperlakukan sebagai filesystembiasa. Ini artinya kita dapat mengakses informasi semua layanan web tersebut seperti layaknya berkas-berkas dalam hard disk. Data dapat dijelajahi menggunakan pengelola berkas (file manager), disalin ke folder, dipindahkan atau dihapus menggunakan utilitas standar sistem operasi.FUSE juga kemudian menjadi basis buat program yang menyediakan dukungan terhadap NTFS pada Linux, NTFS-3G. Peranti lunak ini kemudian juga tersedia buat sistem operasi lain, seperti FreeBSD dan Mac OS X.Meskipun kebanyakan modul-modul FUSE dapat digunakan pada banyak sistem operasi, salah satu modul FUSE yang cukup unik adalah SpotlightFS. Modul ini memungkinkan pengguna buat mengakses hasil utilitas pencarian MacOS X, Spotlight sebagai folder.Untuk memanfaatkan MacFUSE pertama kita harus memasang program intinya (MacFUSE-Core), kemudian memasang modul tambahan yang diinginkan. MacFUSE-Core dapat diunduh dari situs MacFUSE di http://code.google.com/p/macfuse/. Tersedia dua berkas, masing-masing untuk Mac OS X 10.4 dan 10.5. Unduhan tersedia dalam format DMG (disk image).

Membaca drive eksternal dari Windows: NTFS-3G
Agar dapat membaca storage yang diformat dalam NTFS kita bisa menambahkan modul bernama NTFS-3G. Modul ini tersedia dari situs NTFS-3G, di http://www.ntfs-3g.org/. Ada unduhan baik untuk Linux, FreeBSD, NetBSD, Mac OS X dan Haiku. Khusus untuk Mac OS X tersedia pilihan baik dalam berkas DMG, installer PKG, Fink dan MacPorts. Pilih salah satu di antara DMG atau PKG. Fink atau MacPorts lebih sesuai buat pemakai yang punya latar belakang UNIX.Setelah memasang NTFS-3G kita dapat langsung menggunakan storage eksternal seperti biasa. Berbeda dari sebelumnya, setelah memasang modul tersebut Mac OS X mengizinkan pemakai untuk menuliskan data pada peranti NTFS.

Hasil pencarian Spotlight sebagai Folder: SpotlightFS
Pengembang MacFUSE menyediakan satu modul khusus Mac OS X yang cukup menarik. Modul yang dinamakan SpotlightFS ini memungkinkan pemakai buat membuat folder virtual dalam MacOS X, yang berisi pencarian Spotlight.Unduh modul Spotlightfs ini dari situs MacFUSE, di http://code.google.com/p/macfuse/downloads/list. Modul MacFUSE ini tersedia dalam bentuk disk images (DMG). Berkas DMG ini berisi aplikasi SpotlightFS, yang bila dijalankan akan me-mount Volume bernama SpotlightFS, dan ditampilkan di desktop.Membuat folder virtual dapat dilakukan dalam volume ini. Caranya seperti membuat folder biasa: Ctrl + klik (atau klik kanan), lalu pada menu konteks yang muncul pilih New Folder. Beri nama folder tersebut sesuai kata kunci pencarian yang Anda inginkan. Folder tersebut akan berisi berkas-berkas hasil pencarian Spotlight menggunakan nama folder sebagai kata kunci. Sebagai contoh, bila saya membuat folder berisi Bisnis Indonesia pada volume SpotlightFS, folder tersebut akan berisi semua dokumen dan berkas yang terkait dengan Bisnis Indonesia.

SpotlightFS merupakan alternatif lain buat menggunakan fitur pencarian Mac OS X, yang bermanfaat bila Anda bukan orang yang rapi atau malas mengorganisir berkas-berkas.

Password Default untuk windows XP

Hoi Hoi ... ;-) ...
Jaman sekarang di Indonesia hampir semua pake Windows XP Bajakan. WkWkwkwkwkkw......
Tapi kali ini /me nggak akan ngebahas masalah begituan, tapi lebih ke arah teknisnya. Mungkin udah banyak yang tau kalo, untuk setiap komputer baru yang sudah bawaannya terinstall Windows XP, masih ada kerentanan yang masih kita ekploitasi. yaitu ; Password Default. Ayo kita buktikan ...
Ketika windows XP dinyalakan dan kita dihadapkan oleh pilihan login [ welcome screen ]. Jangan dulu pilih salah satu, yang harus dilakukan sebelumnya adalah, menekan ctrl+alt+del sekali saja, tunggu sebentar kemudian tekan ctrl+alt+del sekali lagi. Jreng jreng jreng, kita di hadapkan dengan 2 textbox, yaitu username dan password, usernamenya diisi dengan Administrator sedangkan passwordnya dibiarkan kosong saja. Kemudian tekan enter....
Jreng jreng jreng ... kita sudah login dengan account Administrator. Ya, untuk mengatasi kerentenan ini silahkan ganti passwordnya. start | run | nusrmgr.cpl

Membuat Halaman Admin dengan Akses 1 IP

Setiap web pasti memiliki halaman admin. Halaman admin disini maksudnya adalah halaman web yang digunakan oleh webmaster untuk mengatur isi dan tampilan web. Tentunya kita pasti tidak mau jika halaman admin ini diketahui oleh pihak lain. Menggunakan username dan password sah-sah saja. Tetapi tidak menutup kemungkinan user lain akan mecoba-coba keamanan login yang telah anda buat.

Selain menggunakan username dan password, ada cara lain untuk mengamankan halaman admin. Yakni dengan membatasi IP Address. Jadi hanya IP Address tertentu yang dapat membuka halaman admin ini. Ah, setelah cerita panjang, pastinya anda sudah tidak sabar ingin mengetahui bagaimana cara membuat halaman admin yang aman.

Pertama-tama, anda harus mengetahui IP Address anda. Untuk mengetahuinya, anda dapat menggunakan perintah berikut :

Bila sudah, maka pada bagian admin, Misalnya anda letakkan pada folder ?Administrator/index.php?, anda ketikkan perintah berikut pada bagian awal script :

Lalu untuk setiap halaman web lainnya, (yang juga terdapat pada folder administrator) anda tambahkan perintah berikut :

Jangan lupa lakukan pemanggilan cookies atau session untuk username dan password admin yang telah anda buat. Contoh diatas hanya untuk pemanggilan cookies untuk IP Address. Anda juga dapat membuat lebih dari 1 IP Address yang dapat mengakses admin anda. Tentunya dengan menggunakan database.

CREATE TABLE `web_saya`.`tb_admin` (
`id` BIGINT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` VARCHAR( 30 ) NOT NULL
) ENGINE = MYISAM

INSERT INTO `web_saya`.`tb_admin` (
`id` ,
`ip`
)
VALUES (
NULL , '127.0.0.1'
);

Config.php

Lalu pada bagian index.php yang terdapat pada folder administrator, anda ketikkan script berikut:

Index.php

Dengan script diatas, anda dapat memasukkan lebih dari 1 IP Address yang dapat mengakses halaman admin anda..

Selamat mencoba....

Download Sourcenya disini

Script pengatur waktu Session, Logout Otomatis

Banyak hal terjadi jika seseorang telah berhasil login sebagai user, dan tentunya login ini ada ketika user akan memanfaatkan layanan dari suatu website, bukan karena sebab yang lain, seperti tingkat sekuritas yang buruk. Selalu ada masa idle. Idle di sini bermakna user tidak melakukan apa-apa sama sekali di website tersebut, tidak berpindah halaman, tidak memasukkan input pada form manapun, dan tidak ada hal apapun yang menyebabkan sebuah halaman website terrefresh, dengan kata lain user tidak melakukan apa pun pada website yang sedang dia kunjungi. Sungguh user yang aneh. :D~~. Tapi hal seperti ini dapat terjadi jika user sedang asik mengunjungi website yang lain, dan lupa akan website yang dia kunjungi sebelumnya. Tentunya keadaan user pada website yang dikunjungi sebelumnya dianggap sebagai condition yang idle oleh website tersebut. Tidak ada hal apapun yang terjadi di website sebelumnya. Atau kondisi lain, dimana seorang user yang telah 10 menit meninggalkan pc-nya dalam keadaan lupa melogout accountnya. Sungguh terlalu. Di sinilah fungsi pengatur waktu session benar-benar dibutuhkan.
Ada dua cara untuk mengatur waktu session, yang pertama adalah merubah konfigurasi session timeout pada php.ini, cara yang terakhir yaitu dengan memanfaatkan fungsi time() dan variable session yang telah teregistrasi, dengan kata lain cara yang terakhir ini adalah merancang barisan code yang dapat mengatur waktu session. Penulis tidak akan menjelaskan cara yang pertama. Tapi yang akan penulis jelaskan adalah cara yang kedua. Penulis akan mengambil sebuah contoh kasus, ini untuk memudahkan penjelasan secara logika, dan penjelasan alur dari cara kerja script yang akan dibuat.
Kasusnya seperti ini, “Ketika user telah berhasil login, akan ada sebuah session yang digunakan sebagai patokan untuk membandingkan berapa lama user telah berada pada halaman website tersebut. Apabila waktu time() yang berjalan lebih besar dari nilai session dari variable yang dijadikan sebagai patokan nanti maka user tersebut akan secara otomatis terlogout”.

Secara struktur, algoritmanya akan seperti ini :
  1. Sediakan sebuah variable x, berisi waktu sekarang ditambah 30 detik.
  2. Jadikan variable x tersebut sebagai session, yang akan membypass valuenya pada setiap halaman, dengan kata lain, isi variable x tersebut dapat ditampilkan di halaman mana pun.
  3. Bandingkan waktu sekarang dengan nilai dari variable x tersebut.
  4. Jika waktu sekarang lebih kecil dari nilai variable x tersebut, maka si user masih dalam keadaan login.
  5. Jika waktu sekarang lebih besar dari nilai variable x tersebut, maka keadaan si user adalah logout.
  6. Jika user melakukan refresh halaman, berpindah halaman, mengisi form, sebelum masa sessionnya habis maka waktu login di tambah 10 menit berikutnya.

Ya, untuk algoritma di atas penulis bagi menjadi 2 function, yakni function login_validate() dan login_check(). Langsung saja persiapkan script yang dibutuhkan :

File index.php :
require_once "functions.php"; if (( $_POST['username'] == 'admin' ) && ( $_POST['password'] == 'admin')) { $_SESSION['user'] = $_POST['username']; login_validate(); header("location: admin.php"); } else if ( empty($_POST['username']) && empty($_POST['password']) ) { header("location: login.php"); } ?>

Selanjutnya file intinya yaitu,
functions.php :
session_start(); function login_validate() { $timeout = 30; $_SESSION["expires_by"] = time() + $timeout; } function login_check() { $exp_time = $_SESSION["expires_by"]; if (time() < $exp_time) { login_validate(); return true; } else { unset($_SESSION["expires_by"]); return false; } } ?>

Kemudian admin.php, barisan code dalam admin.php ini penulis ibaratkan seperti kondisi dari admin yang telah berhasil login. Jika lebih dari 30 detik maka user secara otomatis akan di logout. Nilai 30 detik ini diambil dari variable $timeout yang ada di functions.php.

File Admin.php :
require_once "functions.php"; if (ISSET($_SESSION['user'])) { if (!login_check()) { header("Location: logout.php"); exit(0); } else { echo "Jika tidak ada kegiatan sama sekali, anda akan logout secara otomatis ... "; } } else { echo "Anda tidak berhak untuk ngapa-ngapain ... !! :D"; } ?>
Selanjutnya halaman login usernya, login.php :
Login Page ...!
Username
Password


Terlihat jelas pada baris ke 4 di atas, halaman login page memiliki action, menuju index.php, yang kemudian menghasilkan 2 variable POST, yaitu $_POST[‘username’], dan $_POST[‘password’]. Kedua variable inilah yang kemudian dicek pada halaman index.php.

Dan yang terakhir adalah logout.php :
require_once "functions.php"; unset($_SESSION['user']); session_destroy(); header("location: login.php"); ?>

Cara kerja source code di atas cukup sederhana, lihat barisan code index.php,
...... if (( $_POST['username'] == 'admin' ) && ( $_POST['password'] == 'admin')) { $_SESSION['user'] = $_POST['username']; login_validate(); header("location: admin.php"); } else if ( empty($_POST['username']) && empty($_POST['password']) ) { header("location: login.php"); } ....
Penjelasannya adalah sebagai berikut, Jika user memasukkan username dan password yang cocok ( dalam kasus ini username dan passwordnya adalah admin ) maka user akan diberikan sebuah variable session, yakni $_SESSION['user'], dan akan ditambahkan sebuah variable baru yang nantinya variable ini berfungsi sebagai timer, yakni
$timeout = 30;
Variable tersebut berada dalam fungsi login_validate() pada script functions.php. Sedangkan masih dalam fungsi login_validate, lompat ke barisan code dibawahnya yaitu :
$_SESSION["expires_by"] = time() + $timeout;
Disinilah letak timer yang sebenarnya, kehebatan dari session adalah dapat melakukan passing value walaupun halamannya berbeda. Jelasnya $_SESSION["expires_by"] mengambil nilainya dari waktu ketika user pertama kali login yaitu time() di tambah dengan 30 detik kedepannya, yakni isi dari variable $timeout.

Nah, dari situ, lihat ke bagian fungsi yang ada di bawahnya, pada functions.php :

... function login_check() { $exp_time = $_SESSION["expires_by"]; if (time() < $exp_time) { login_validate(); return true; } else { unset($_SESSION["expires_by"]); return false; } }
....

Ya, lihat baris :
$exp_time = $_SESSION["expires_by"];

Varibale $exp_time itu memiliki nilai dari $_SESSION["expires_by"],
Untuk kejelesannya penulis berikan contoh seperti ini, jika user login pada waktu jam 5, maka $_SESSION["expires_by"] berisi jam ke 5, menit ke 0, dan detik ke 30. Dan secara alami pun diketahui bahwa yang namanya waktu pasti akan terus bertambah tentunya. Tapi karena berada dalam fungsi, variable $_SESSION["expires_by"] ini tidak akan bertambah, walaupun time() terus berlanjutnya.

Lompat ke baris selanjutnya : if (time() < $exp_time) { login_validate(); return true;

Dalam baris tersebut sederhananya adalah, jika waktu yang sekarang berjalan lebih kecil nilainya dari nilai yang ada pada $_SESSION["expires_by"], maka tambahkan 30 detik lagi, dan jika waktu pada time() sama dengan nilai $_SESSION["expires_by"] maka user akan otomatis logout

Selanjutnya ...
... else { unset($_SESSION["expires_by"]); return false; }
...

Jika waktu yang sekarang berjalan itu lebih besar dari nilai yang ada pada $_SESSION["expires_by"], maka lakukan logout.