Tuesday, May 29, 2012

:: Bermain dengan Code Igniter ::


Ok.. Lansung Ke TKP --> 
Nyang dibutuhin : Paket Webserver (AppServ ato XAMPP ato EasyPHP, dll) & Code Igniter
Codeigniter (CI) merupakan sebuah PHP framework, katakanlah, untuk orang yang ingin membangun website dengan menggunakan PHP. Dengan menggunakan arsitektur model-view-controller yang memisahkan antara bagian logic dan tampilan dari program, CI cukup “menyenangkan” untuk digunakan. Tidak sulit. Cukup siapkan 2 gelas kopi panas plus Ruti untuk mulai mempelajarinya :)
Step 1 : Instalasi
  1. Ekstrak bundle CodeIgniter yang telah anda download dalam direktori root web server anda.
  2. Anda akan melihat banyak folder…. oke, jangan cemas. Masuk ke dalam folder system-application.
  3. Nah.. bagian dalam folder application inilah yang akan sering anda “bongkar” entar :)
Step 2 : Konfigurasi
  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
    maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";
    Mengapa localhost? Karena dalam tutorial ini kita akan membangun CI dalam server lokal kita :)
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostnameusername,password, dan nama database (database akan kita buat entar, untuk sementara siapkan namanya dulu saja) sesuaikan dengan pengaturan mysql anda. Contoh :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_ci";
Selesai dengan instalasi dan konfigurasi, next step siapkan database yang akan kita gunakan dalam praktikum kali ini (praktikum ha ha, please dont imagine like we’re done something biology okay J )
Step 3 : Siapkan database
  1. Buat database dengan nama db_ci melalui phpmyadmin anda (saya asumsikan anda sudah terbiasa menggunakan tool hebat ini).
  2. Siapkan tabel dengan nama tb_buku (field : id_buku, judul_buku, stok_buku).
    CREATE TABLE IF NOT EXISTS `tb_buku` (
    `id_buku` varchar(10) NOT NULL,
    `judul_buku` varchar(50) DEFAULT NULL,
    `stok_buku` year(4) DEFAULT NULL,
    PRIMARY KEY (`id_buku`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  3. Insert-kan beberapa sample data ke dalam tb_buku.
    INSERT INTO `tb_buku` (`id_buku`, `judul_buku`, `stok_buku`) VALUES
    ('1', 'Mencari Tombol Tab', 2003),
    ('2', 'Guna Guna dari Raja', 2033);
  4. Ok, we’re done with database !
Step 4 : Bekerja dengan CI
  1. Membuat model. Ketikkan script berikut ini
    <?php
    class Buku_model extends Model {
    function Buku_model()
    {
    parent::Model();
    }
    db->select('*');
    $this->db->from('tb_buku');
    $this->db->order_by('id_buku','DESC');
    $data = $this->db->get('');
    return $data;
    }
    }
    ?>
  2. Simpan dengan nama buku_model.php. Simpan dalam folder system-application-models
  3. Membuat Controller. Ketikkan script berikut ini,
    <?php
    class Buku_con extends Controller {

    public function Buku_con()
    {
    parent::__construct();
    $this->load->model('buku_model');
    }

    public function getBuku () {
    $data['title'] = 'menampilkan isi buku';
    $data['detail'] = $this->buku_model->getBuku();
    $this->load->view('buku_view', $data);
    }
    }
    ?>
  4. Simpan dengan nama buku_con.php. Simpan dalam folder system-application-controller
  5. Membuat View. Ketikkan script,
    <h4>Data Buku</h4>
    <?php foreach($detail->result() as $rows) :
    echo $rows->id_buku; echo "<br>";
    echo $rows->judul_buku; echo "<br>";
    echo $rows->stok_buku; echo "<br>";
    endforeach
    ?>
  6. Simpan dengan nama buku_view.php. Simpan dalam folder system-application-view
  7. Nah. Kita sudah membuat sebuah fungsi untuk menampilkan data dari database dengan controller, model, dan view. Sekarang masuk ke browser anda.
  8. Ketikkan http://localhost/ci/buku_con/getBuku/. Dan… TADAAAA

  9. Anda sudah boleh tidur setelah melihat gambar seperti diatas J
Step 5 : Menyiapkan kopi ketiga dan membuka Yahoo! Messenger
Happy Coding Chatting ! :D
Referensi lain.. Silahkan Sedoot Brow  Gratis.. jangan lupa -Baca-Pelajari-Sebarkan- Indahnya berbagi

Menulis sebuah IRC bot di PHP


Pertama, kita akan men-download Net_SmartIRC http://download.pear.php.net/package...tIRC-1.0.0.tgz. Ya, ini adalah "tarball," TAR arsip atau file di dalam gzip arsip. Jika anda tidak memiliki perangkat lunak untuk meng-extract file ini, Anda tidak perlu khawatir! Kita bisa meng-extract langsung dan di upload ke Shellium. Jika Anda memiliki perangkat lunak, bagus! lanjutkan dan extract file nya. Jika Anda masih perlu untuk mengambil file tersebut, cukup menjalankan perintah ini: tar-zxf Net_SmartIRC-1.0.0.tgz

Kita tidak memerlukan file "package.sig" atau "package.xml," jadi, hapus saja. Sekarang anda seharusnya sudah memiliki sebuah direktori bernama "Net_SmartIRC-1.0.0." Cd ke dalam direktori ini. Anda dapat menyimpan salah satu atau semua file-file ini, atau hanya perlu bare utama. Yang benar-benar Anda perlukan untuk mendapatkan PHP IRC bot up dan running adalah:

* The directory “SmartIRC”
* The file “SmartIRC.php” 

Ya, itu semua. Namun, saya akan rekomendasikan menjaga direktori "docs" dan "examples," karena mereka dapat membantu anda dengan hal-hal yang tidak ditawarkan tutorial ini.

Baiklah, mari kita mulai. Buat file teks kosong dengan ekstensi "php". Ke dalam file ini, masukkan berikut ini: 

Code:
<?php
include_once('SmartIRC.php');
class mybot {
(&$irc, &$data) {
function tes
t $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': It works!');
} function quit(&$irc, &$data) {
{ $irc->disconnect(
if ($data->nick == "YourNickHere") ); } } } $bot = &new mybot(); $irc = &new Net_SmartIRC();
onhandler(SMARTIRC_TYPE_CHANNEL, '^!te
$irc->setDebug(SMARTIRC_DEBUG_ALL); $irc->setUseSockets(TRUE); $irc->registerAct ist', $bot, 'test'); $irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, '^!quit', $bot, 'quit');
TIRC_VERSION.' (yourfilename.php)', 0, 'N
$irc->connect('irc.server.net', 6667); $irc->login('Net_SmartIRC', 'Net_SmartIRC Client '.SMA Ret_SmartIRC'); $irc->join(array('#test')); $irc->listen(); $irc->disconnect();
?>
Silakan lanjutkan dan edit hal-hal dasar seperti channel Anda, dan nama server.

Sekarang, mari kita lihat apa yang sudah dilakukan script ini. 

Code:
class mybot
{
function test(&$irc, &$data)
{
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': It works!');
} function quit(&$irc, &$data) { if ($data->nick == "YourNickHere")
{ $irc->disconnect(); } }
}
Class ini adalah bot Anda. Semua tanggapan yang ditetapkan diprogram di sini. Kita dapat melihat bahwa kita memiliki fungsi bernama "test" yang mengambil dua argumen. "Irc" dan "data." Irc objek adalah agar kita dapat berinteraksi dengan saluran di dalam IRC bot. Sedangkan data objek sebagian besar berisi data pesan. Kita akan berbicara mengenai hal ini nanti. Sekarang, mari kita melihat pernyataan di dalam fungsi ini pada Class ini. Kita memanggil salah satu fungsi di dalam IRC objek, pesan. 

Kita mengirimkan pesan dengan jenis "SMARTIRC_TYPE_CHANNEL," yang berarti kita mengirimnya ke channel. Pesan target kita adalah $data->channel, yang diatur secara otomatis ke channel asal. Pesan kita adalah $data->nick.': It works!', Yang sangat mudah dipahami jika anda tahu PHP Anda. Kita juga menetapkan fungsi keluar yang disarankan, karena kita harus merestart bot setiap kali kita menambahkan fungsi. Fungsi keluar hanya berfungsi jika "Anda" adalah satu-satunya pemberi perintah, jadi silahkan edit/ubah baris ini. 

Code:
$bot = &new mybot();
$irc = &new Net_SmartIRC();
$irc->setDebug(SMARTIRC_DEBUG_ALL);
$irc->setUseSockets(TRUE);
(SMARTIRC_TYPE_CHANNEL, '^!test', $bot, 'test'); $irc->connect('irc.server.
$irc->registerActionhandle rnet', 6667);
('Net_SmartIRC', 'Net_SmartIRC Client '.SMARTIRC_VERSION.' (yourfilename.php)', 0, 'Net_SmartIRC');
$irc->logi n
Wow, banyak hal baru di sini. Baiklah, pada baris pertama kita akan membuat sebuah contoh dari mybot, disimpan dalam variabel $bot. Kita juga membuat contoh baru dari perpustakaan, Net_SmartIRC, dan menyimpannya dalam $irc. Kita mengaktifkan semua pesan debug, meskipun anda dapat mengubah ini ke SMARTIRC_DEBUG_NONE jika anda menginginkannya. Baris berikutnya tidak penting, tapi diperlukan, jadi jangan menghapusnya.

Ok, sekarang kita di baris yang penting. Tindakan penanganan. Anda akan banyak menggunakan ini, sebenarnya, IRC bot dibangun pada platform tindakan penanganan. Ini pada dasarnya memberitahu $bot untuk memanggil fungsi tes apabila ada yang mengatakan sesuatu yang dimulai dengan !Tes di channel IRC.

Kemudian kita melakukan koneksi ke server IRC, (Anda akan benar-benar ingin mengubah alamat di sini!) Dan mengirim informasi kita, yang dapat Anda edit. 

Code:
$irc->join(array('#test'));
$irc->listen();
(); ?>
$irc->disconnec
t
Kita kemudian bergabung dengan array channel. (Anda dapat mengubah baris ini ke $irc->join(array('#test','#test2')); atau menambahkan channel sebanyak yang Anda inginkan, atau butuhkan. Kita kemudian memanggil $irc->listen(), yang secara sederhana merupakan sebuah respon tak berbatas yg berulang ke ping server, memeriksa kegiatan penanganan, dan hal menyenangkan lainnya. 

Jika listen() berhenti dengan alasan apapun, dapat dipastikan bahwa kita terputus dari IRC, dan ... File berakhir! Anda dapat menjalankan bot ini cukup dengan menjalankan "php yourfilename.php", atau mengunjungi php file dalam web browser.

Sekarang, mari kita menguji bot! Koneksikan ke server dan bergabung dengan channel yang ditetapkan. Ketik !Test. bot Anda seharusnya merespon. Ketik !quit. Bot Anda seharusnya keluar. Seharusnya mudah untuk mengembangkan hal ini dan membuat bot Anda lebih baik!

Selamat Mencoba!

Ebook Gratis

Ebook PHP & MySql Gratis [ Baca - Pelajari - Sebarkan ] - Indahnya Berbagi 
Silahkan Download Gratis jangan lupa sebarkan



PHP & SQL Tutorial Dasar


Silahkan Sedot Ebook Gratis Menyelam Samudra PHP [ Baca - Pelajari - Sebarkan]
Tutorial kali ini, kita akan mencoba melakukan operasi – operasi dasar pada PHP MySQL.
1. Membuat koneksi
<?php
$hostmysql = “localhost”;
$username = “mysqlusername”;
$password = “mysqlpassword”;
$database = “namadatabase”;
$conn = mysql_connect(“$hostmysql”,”$username”,”$password”);
if (!$conn) die (“Koneksi gagal”);
mysql_select_db($database,$conn) or die (“Database tidak ditemukan”); >
Penjelasan Script:
a. mysql_connect
digunakan untuk membuat koneksi dari PHP ke server MySQL. Data mengenai hostname, mysql username, dan password yang digunakan telah diwakilkan oleh variabel $hostmysql, $username, $password. Penulisannya akan sama dengan:
mysql_connect(“localhost”,”username”,”password”);
b. mysql_select_db
untuk memilih database yang akan digunakan.
c. if (!$conn) die (“Koneksi gagal”);
jika koneksi gagal dibuat (!$conn), maka akan muncul pesan kesalahan
Setiap operasi PHP yang berhubungan dengan MySQL, akan membutuhkan sintaks diatas. agar lebih mudah, lebih baik disimpan terlebih dahulu dengan nama konfig.php. Jika sintaks tersebut dibutuhkan lagi, maka kita melakukan include terhadap file konfig.php tersebut.
2. Membuat tabel pada MySQL
<?php
include (“konfig.php”);
mysql_query(“CREATE TABLE user (
namadpnVARCHAR(20),
namablkg VARCHAR(20),
negara VARCHAR(20))”); ?>
Penjelasan script:
1. include (“konfig.php”);
perintah include digunakan untuk mengikut sertakan sebuah file (pada contoh diatas adalah file konfig.php).
2. mysql_query
format umum dari perintah ini adalah mysql_query(string dari query).
mysql_query akan sering dijumpai pada artikel kali ini.
3. Memasukkan data pada tabel
<?php
include (“konfig.php”);
$insert = “INSERT INTO users (namadpn,namablkg,negara)
VALUES (‘Saya’,'Sendiri’,'Indonesia’)”;
mysql_query($insert) or die (“tidak dapat memasukkan data ke tabel”);?>
4 . Menampilkan data dari tabel
<?php
include (“konfig.php”);
$query = “SELECT * FROM user”;
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
echo “Jumlah data: $numrows <br>”;
echo “Nama Depan: $row[namadpn] <br>”;
echo “Nama Belakang: $row[namablkg] <br>”;
echo “Negara: $row[negara]“;
} ?>
Penjelasan script:
1. mysql_num_rows
digunakan untuk menghitung jumlah baris yang didapat dari hasil eksekusi query (mysql_query).
2. while ( ) {
}
digunakan untuk melakukan perulangan selama data yang yang diinginkan masih ada. (dalam contoh diatas: akan menampilkan semua isi dari table).
3. mysql_fetch_array
menampilkan data dari tabel dalam bentuk array
Untuk penggunaan lainnya (hapus, update, dsb) yang berubah hanya string query-nya saja.

Monday, May 28, 2012

Membuat Laporan (Report) PDF dengan PHP dan HTML2FPDF

Bagi kita yang sering berkecimpung di dunia web development, termasuk saya, tentunya pernah diminta membuat suatu aplikasi yang didalamnya terdapat modul laporan. Dalam hal pembuatan laporan tersebut, terkadang kita kesulitan dalam menentukan format dan library yang akan kita gunakan. Beberapa format laporan yang sering digunakan adalah format HTML (dan CSS), PDF, Image, CSV dan Excel (Spreadsheet). Masing-masing format tersebut memiliki kelebihan dan keterbatasannya masing-masing.

PDF
PDF (Portable Document Format) merupakan salah satu pilihan format laporan yang sering digunakan dalam aplikasi berbasis web. Kelebihannya antara lain formatnya yang standar dan dapat ditampilkan di semua platform sistem operasi (cross platform). Selain itu, format PDF lebih terjamin dari sisi keamanan dan kevalidan data yang disajikan. PDF juga lebih mudah disimpan atau diarsip karena dalam bentuk file. Namun disisi lain, kekurangan dari PDF adalah saat ini masih jarang tersedia library pembuatan PDF berbasis web yang cukup mudah digunakan namun handal.
PHP merupakan bahasa pemrograman berbasis web yang saat ini banyak digunakan dalam membangun aplikasi web. Alasannya karena PHP itu open source (free), mudah dipelajari dan memiliki banyak library untuk berbagai keperluan. Termasuk diantara library yang didukung oleh PHP adalah yang berhubungan dengan manipulasi PDF on-the-fly. Beberapa contoh library PHP untuk manipulasi PDF yaitu FPDF (http://www.fpdf.org), TCPDF (http://www.tcpdf.org), PDFLib dan beberapa library lainnya.
Untuk urusan manipulasi PDF, memang library seperti FPDF dan TCPDF memang cukup handal. Library tersebut dapat digunakan untuk meng-generate file PDF secara on-the-fly di browser. Namun bagi kita yang masih pemula, agak kesulitan dalam mengimplementasikan library tersebut, karena cukup susah dalam penempatan objek-objek laporan, terutama jika laporannya sudah kompleks.
HTML2FPDF
Setelah melakukan pencarian di internet, akhirnya saya menemukan satu class (library) PHP yang cukup handal dan mudah dalam hal pembuatan file PDF. Library tersebut bernama HTML2FPDF, dan beralamat di http://html2fpdf.sourceforge.net/. Pada intinya cara kerja yang dilakukan oleh library tersebut adalah mengubah perintah-perintah HTML menjadi PDF. Jadi, bagi kita yang akan membuat laporan cukup membuatnya melalui perintah-perintah HTML yang tentunya kita sudah lebih familiar. Selanjutnya kita tinggal “menyuruh” librari HTML2FPDF untuk mengubahnya menjadi file PDF. Cukup mudah kan?
Cara Kerja HTML2FPDF
HTML2FPDF sendiri menggunakan library FPDF dalam hal pembuatan file PDF. Sehingga selain class-nya, kita juga memerlukan library dari FPDF di server kita. HTML2FPDF dapat didapatkan dari situs resminya di http://html2fpdf.sourceforge.net/ secara cuma-cuma (gratis). Namun di situs tersebut tidak disertakan library FPDF, jadi kita harus menambahkannya sendiri. Sebagai alternatif, Anda dapat mendapatkan versi lengkap dari library HTML2FPDF (termasuk FPDF dan beberapa contoh programnya) di alamat berikut ini

HTML2FPDF
Contoh Penggunaan HTML2FPDF
Untuk membuat laporan PDF dengan class (library) HTML2FPDF, pada dasarnya dapat dilakukan melalui 2 (dua) cara. Cara yang pertama adalah dengan membuat file HTML terlebih dahulu lalu membaca isinya dan mengirimkannya ke class untuk dikonvert ke PDF. Lalu cara yang kedua adalah dengan membuat file HTML secara langsung di code program (PHP). Keduanya pada dasarnya sama.
Berikut ini contoh program untuk mengkonversi file “sample.html” ke PDF.
Code block
   1. <?
   2. require('html2fpdf/html2fpdf.php');
   3. $pdf=new HTML2FPDF();
   4. $pdf->AddPage();
   5. $fp = fopen("sample.html","r");
   6. $strContent = fread($fp, filesize("sample.html"));
   7. fclose($fp);
   8. $pdf->WriteHTML($strContent);
   9. $pdf->Output("sample.pdf","I");
  10. //echo "PDF file is generated successfully!";
  11. ?>
Hasil program diatas dapat dicoba di sini.
Dan berikut ini contoh program untuk meng-generate PDF dimana code HTML langsung dituliskan di PHP.
Code block
   1. ?php
   2. equire('html2fpdf/html2fpdf.php');
   3. $pdf=new HTML2FPDF();
   4. $pdf->AddPage();
   5. $strContent = "<h1 align=center>Hello World!</h1><p>
       Sekarang saya bisa bikin laporan PDF dengan mudah</p>";
   6. $pdf->WriteHTML($strContent);
   7. $pdf->Output("sample2.pdf","I");
   8. //echo "PDF file is generated successfully!";
   9. ?>
Demo program di atas dapat dilihat di sini.
Semoga bermanfaat.
Referensi
  1. http://html2fpdf.sourceforge.net, Situs Resmi HTML2FPDF
  2. HTML2FPDF using PHP



Menggunakan Proxy "Maya" Guna Mengantisipasi Tracer IP


Menggunakan proxy "maya" mungkin bukanlah barang baru para hacker-hacker indonesia, banyak para hacker-hacker indonesia yang menggunakan proxy maya untuk menjebol suatu situs yang ingin di deface, teknik ini pulalah yang dilakukan oleh xnuxer dalam menjebol database KPU pada tahun 2004 . xnuxer menggunakan proxy dari luar indonesia untuk mengecoh polisi cyber crime indonesia melakukan pelacakan/trace kepada pelaku. hal ini cukup terbukti jitu dikarenakan dengan melakukan teknik ini, setidaknya poilsi sedikit membutuhkan waktu lebih lama untuk melacak dengan pasti keberadaan xnuxer. Bagi temen-temen yang maw mengetahui bagaimana mendapatkan list IP proxy dan menggunakannya dapat mengikuti langkah-langkah yang saya jelaskan seperti di bawah ini.

1. Untuk Langkah pertama kali, mungkin anda bisa mengunjungi jasa penyedia proxy list yang bertebaran di internet. salah satu yang menyediakan jasa itu antara lain. http://hidemyass.com/proxy-list/
atau bisa kunjungi
http://www.tinyurl.com/2par5b

2. Untuk mencek apakah teknik ini dapat bekerja, anda harus membuktikannya sendiri, misalkan catat IP yang akan anda gunakan dan port yang akan anda gunakan (anda dapat mendapatkannya pada website yang linknya sudah saya berikan di atas, misalkan menggunakan IP 128.208.004.198. dengan port yang digunakan 3128

3. lalu masukkan IP dan port yang kita dapatkan tadi pada browser anda, pada contoh kali ini saya menggunakan browser mozilla. cara memasukkannya Tool > Options > Advance Tab > Network Tab > Settings > Manual Proxy Config

4. Setelah anda memasukkan list IP tadi di web browser, silahkan lakukan pengecekan IP anda melalui situs penyedia jasa cek IP, pada kali ini saya mencontohkan pada situs http://www.whatismyip.com

5. Setelah terbuka apa yang terjadi? lakukan lah refresh halaman pada http://www.whatismyip.com/, coba anda amati dengan seksama, pasti IP yang tertera disitu tidak pernah sama. itu lah salah satu fungsi dari teknik ini. jadi jika anda ingin dilacak oleh teman anda atau penganggum anda maka alamat asli anda tidak akan ketahuan dikarenakan yang terlacak adalah IP-IP kosong yang bertebaran di internet dan bukan IP asli yang diberikan oleh ISP anda.

Cara Hacker Meng Hack Website


Berikut ini berbagai cara dan trik seorang hacker meng hack sebuah website :

HTTPD Attacks Hack

Kerawanan yang terdapat dalam HTTPD ataupun webserver ada lima macam: buffer overflows, httpd bypasses, cross scripting, web code vulnerabilities, dan URL floods.
HTTPD Buffer Overflow bisa terjadi karena hacker menambahkan errors pada port yang digunakan untuk web traffic dengan cara memasukan banyak carackter dan string untuk menemukan tempat overflow yang sesuai. Ketika tempat untuk overflow ditemukan, seorang hacker akan memasukkan string yang akan menjadi perintah yang dapat dieksekusi. Bufer-overflow dapat memberikan hacker akses ke command prompt.

TCP/IP Sequence Stealing Hack


Passive Port Listening and Packet
Interception TCP/IP Sequence Stealing, Passive Port Listening dan Packet Interception berjalan untuk mengumpulkan informasi yang sensitif untuk mengkases network. Tidak seperti serangan aktif maupun brute-force, serangan yang menggunakan metoda ini mempunyai lebih banyak kualitas stealth-like.

Port Scanning Hack


Melalui port scanning seorang hacker bisa melihat fungsi dan cara bertahan sebuah system dari berbagai macam port. Seorang atacker bisa mendapatkan akses kedalam sistem melalui port yang tidak dilindungi. Sebaia contoh, scaning bisa digunakan untuk menentukan dimana default SNMP string di buka untuk publik, yang artinya informasi bisa di extract untuk digunakan dalam remote command attack.

Selective Program Insertions Hack

Selective Program Insertions adalah serangan yang dilakukan ketika hacker menaruh program-program penghancur, seperti virus, worm dan trojan (mungkin istilah ini sudah anda kenal dengan baik ?) pada system sasaran. Program-program penghancur ini sering juga disebut malware. Program-program ini mempunyai kemampuan untuk merusak system, pemusnahan file, pencurian password sampai dengan membuka backdoor.

Remote File System Attack Hack


Protocol-protokol untuk tranportasi data –tulang punggung dari internet— adalah tingkat TCP (TCPLevel) yang mempunyai kemampuan dengan mekanisme untuk baca/tulis (read/write) Antara network dan host. hacker bisa dengan mudah mendapatkan jejak informasi dari mekanisme ini untuk mendapatkan akses ke direktori file.

Remote Command Processing Attacks
Hack

Trusted Relationship antara dua atau lebih host menyediakan fasilitas pertukaran informasi dan resource sharing. Sama halnya dengan proxy server, trusted relationship memberikan kepada semua anggota network kekuasaan akses yang sama di satu dan lain system (dalam network).
hacker akan menyerang server yang merupakan anggota dari trusted system. Sama seperti kerawanan pada proxy server, ketika akses diterima, seorang hacker akan mempunyai kemampuan mengeksekusi perintah dan mengkases data yang tersedia bagi user lainnya.

Proxy Server Attacks Hack


Salah satu fungsi Proxy server adalah untuk mempercepat waktu response dengan cara menyatukan proses dari beberapa host dalam suatu trusted network. Dalam kebanyakan kasus, tiap host mempunyai kekuasan untuk membaca dan menulis (read/write) yang berarti apa yang bisa saya lakukan dalam sistem saya akan bisa juga saya lakukan dalam system anda dan sebaliknya.

Password Attacks Hack


Password merupakan sesuatu yang umum jika kita bicara tentang kemanan. Kadang seorang user tidak perduli dengan nomor pin yang mereka miliki, seperti bertransaksi online di warnet, bahkan bertransaksi online dirumah pun sangat berbahaya jika tidak dilengkapi dengan software security seperti SSL dan PGP. Password adalah salah satu prosedur kemanan yang sangat sulit untuk diserang, seorang hacker mungkin saja mempunyai banyak tools (secara teknik maupun dalam kehidupan sosial) hanya untuk membuka sesuatu yang dilindungi oleh password.
Ketika seorang hacker berhasil mendapatkan password yang dimiliki oleh seorang user, maka ia akan mempunyai kekuasaan yang sama dengan user tersebut. Melatih karyawan/user agar tetap waspada dalam menjaga passwordnya dari social engineering setidaknya dapat meminimalisir risiko, selain berjaga-jaga dari praktek social enginering organisasi pun harus mewaspadai hal ini dengan cara teknikal. Kebanyakan serangan yang dilakukan terhadap password adalah menebak (guessing), brute force, kracking dan sniffing.

DNS and BIND Vulnerabilities
Hack

Berita baru-baru ini tentang kerawanan (vulnerabilities) tentang aplikasi Barkeley Internet Name Domain (BIND) dalam berbagai versi mengilustrasikan kerapuhan dari Domain Name System (DNS), yaitu krisis yang diarahkan pada operasi dasar dari Internet (basic internet operation).

E-mail Exploits
Hack

Peng-exploitasian e-mail terjadi dalam lima bentuk yaitu: mail floods, manipulasi perintah (command manipulation), serangan tingkat transportasi(transport level attack), memasukkan berbagai macam kode (malicious code inserting) dan social engineering(memanfaatkan sosialisasi secara fisik). Penyerangan email bisa membuat system menjadi crash, membuka dan menulis ulang bahkan mengeksekusi file-file aplikasi atau juga membuat akses ke fungsi fungsi perintah (command function).

Fragmented Packet Attacks Hack


Data-data internet yang di transmisikan melalui TCP/IP bisa dibagi lagi ke dalam paket-paket yang hanya mengandung paket pertama yang isinya berupa informasi bagian utama( kepala) dari TCP. Beberapa firewall akan mengizinkan untuk memroses bagian dari paket-paket yang tidak mengandung informasi alamat asal pada paket pertamanya, hal ini akan mengakibatkan beberapa type system menjadi crash. Contohnya, server NT akan menjadi crash jika paket-paket yang dipecah(fragmented packet) cukup untuk menulis ulang informasi paket pertama dari suatu protokol

Flooding & Broadcasting Hack


Seorang hacker bisa menguarangi kecepatan network dan host-host yang berada di dalamnya secara significant dengan cara terus melakukan request/permintaan terhadap suatu informasi dari sever yang bisa menangani serangan classic Denial Of Service(Dos), mengirim request ke satu port secara berlebihan dinamakan flooding, kadang hal ini juga disebut spraying. Ketika permintaan flood ini dikirim ke semua station yang berada dalam network serangan ini dinamakn broadcasting. Tujuan dari kedua serangan ini adalah sama yaitu membuat network resource yang menyediakan informasi menjadi lemah dan akhirnya menyerah.
Serangan dengan cara Flooding bergantung kepada dua faktor yaitu: ukuran dan/atau volume (size and/or volume). Seorang hacker dapat menyebabkan Denial Of Service dengan cara melempar file berkapasitas besar atau volume yang besar dari paket yang kecil kepada sebuah system. Dalam keadaan seperti itu network server akan menghadapi kemacetan: terlalu banyak informasi yang diminta dan tidak cukup power untuk mendorong data agar berjalan. Pada dasarnya paket yang besar membutuhkan kapasitas proses yang besar pula, tetapi secara tidak normal paket yang kecil dan sama dalam volume yang besar akan menghabiskan resource secara percuma, dan mengakibatkan kemacetan.

Unix Finger Exploits Hack


Pada masa awal internet, Unix OS finger utility digunakan secara efficient untuk men sharing informasi diantara pengguna. Karena permintaan informasi terhadap informasi finger ini tidak menyalahkan peraturan, kebanyakan system Administrator meninggalkan utility ini (finger) dengan keamanan yang sangat minim, bahkan tanpa kemanan sama sekali. Bagi seorang hacker utility ini sangat berharga untuk melakukan informasi tentang footprinting, termasuk nama login dan informasi contact.
Utility ini juga menyediakan keterangan yang sangat baik tentang aktivitas user didalam sistem, berapa lama user berada dalam sistem dan seberapa jauh user merawat sistem. Informasi yang dihasilkan dari finger ini dapat meminimalisasi usaha kracker dalam menembus sebuah sistem. Keterangan pribadi tentang user yang dimunculkan oleh finger daemon ini sudah cukup bagi seorang atacker untuk melakukan social engineering dengan menggunakan social skillnya untuk memanfaatkan user agar ‘memberitahu’ password dan kode akses terhadap system.

FTP Attack Hack


Salah satu serangan yang dilakukan terhadap File Transfer Protocol adalah serangan buffer overflow yang diakibatkan oleh malformed command. tujuan menyerang FTP server ini rata-rata adalah untuk mendapatkan command shell ataupun untuk melakukan Denial Of Service. Serangan Denial Of Service akhirnya dapat menyebabkan seorang user atau hacker untuk mengambil resource didalam network tanpa adanya autorisasi, sedangkan command shell dapat membuat seorang hacker mendapatkan akses ke sistem server dan file-file data yang akhirnya seorang hacker bisa membuat anonymous root-acces yang mempunyai hak penuh terhadap system bahkan network yang diserang.
Sebagai contoh adalah FTP server yang populer di keluarga UNIX yaitu WU-FTPD yang selalu di upgrade dua kali dalam sehari untuk memperbaiki kondisi yang mengizinkan terjadinya bufferoverflow Mengexploitasi FTP juga berguna untuk mengetahui password yang terdapat dalam sistem, FTP Bounce attack (menggunakan server ftp orang lain untuk melakukan serangan), dan mengetahui atau mensniff informasi yang berada dalam sistem.

IP Spoofing Hack


IP Spoofing juga dikenal sebagai Source Address Spoofing, yaitu pemalsuan alamat IP hacker sehingga sasaran menganggap alamat IP hacker adalah alamat IP dari host di dalam network bukan dari luar network. Misalkan hacker mempunyai IP address type A 66.25.xx.xx ketika hacker melakukan serangan jenis ini maka Network yang diserang akan menganggap IP hacker adalah bagian dari Networknya misal 192.xx.xx.xx yaitu IP type C.
IP Spoofing terjadi ketika seorang hacker ‘mengakali’ packet routing untuk mengubah arah dari data atau transmisi ke tujuan yang berbeda. Packet untuk routing biasanya di transmisikan secara transparan dan jelas sehingga membuat hacker dengan mudah untuk memodifikasi asal data ataupun tujuan dari data. Teknik ini bukan hanya dipakai oleh hacker tetapi juga dipakai oleh para security profesional untuk men tracing identitas dari para hacker.

Cara Melindungin Halaman Admin..



Ketika kita melakukan serangan SQL injection dah pasti langsung cari kolom dan table yang berhubungan sama username dan password administrator.

Nah setelah itu pasti kita langsung mencari admin page-nya. Beberapa dari kita lancar, mungkin dengan sedikit keberuntungan? Tebak – tebakan atau menggunakan tools. Nah sisanya bakalan kebingungan dan nyerah gitu aja (mungkin ini masalah yang sering dialami, saya juga gitu), karena dah nyerah cuman posting di forum hasil injectnya doang. Entah ingin sharing? Berharap orang lain menemukan admin pagenya? Atau cuman sekedar pamer? Who knows?

Itulah salah satu proteksi yang dilakukan oleh sang Administrator yaitu membuat nama yang unik bagi halaman adminnya. Mungkin beberapa tools yang bekerja secara Brute Force atau menyimpan list nama – nama halaman admin yang biasa digunakan bakalan gak berguna cuman bagi tools seperti Acunetix yang bekerja secara crawler?

Mungkin tips trik disini gak terlalu berguna cuman menarik aja, sapa tau ada ide – ide yang lebih bagus. Intinya walaupun admin pagenya telah di dapat tetapi kita menambah beberapa proteksi lagi dan siapa tau membuat sang attacker putus asa?

Langsung ja…

1. Mengamakan Admin Page Dengan Proteksi IP Tertentu.

Disini kita menggunakan file .htaccess.

Code:
<Limit GET POST PUT>
     order deny,allow
     deny from all
     allow from 192.168.1.5
</Limit>
Jadi letakkan file .htaccess tersebut di direktori tempat admin pagenya berada. Hanya IP 192.168.1.5 yang bisa masuk.


2. Double Password.

WTF? Kok double? Kan si Attacker dah liat isi database kita?

Gini, sebenernya ini juga saya asal – asal mikir aja dan mungkin bisa kita terapkan. Beberapa pikiran – pikiran saya cuman ini doang yang bisa saya praktekkan (maklum hasrat kuat skill kurang). Intinya satu password disimpan di database yang satu lagi enggak.

Berikut contoh simplenya.

Pertama kita buat database latihan1 dengan table useradmin yang isinya id_user (int(5), auto_increment, primary_key), username (varchar(25)) dan password (varchar(25)).



Setelah itu kita buat dulu halaman login adminnya (index.php) yang berisi kode berikut…

Code:
<form id="form1" name="form1" method="post" action="cek_user.php">
  <table width="200" border="1">
    <tr>
      <td>Username</td>
      <td><input name="username" type="text" id="username" /></td>
    </tr>
    <tr>
      <td>Password</td>
      <td><input name="password" type="password" id="password" /></td>
    </tr>
    <tr>
      <td>Pass2</td>
      <td><input name="password2" type="password" id="password2" /></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="Submit" value="Submit" /></td>
    </tr>
  </table>
</form>

Ketiga buat file cek_user.php

Code:
<?php
include "koneksi.php";
session_start();
$username    =    trim(strip_tags(mysql_real_escape_string($_POST['username'])));
$password    =    trim(strip_tags(mysql_real_escape_string($_POST['password'])));
$password2    =    trim(strip_tags(mysql_real_escape_string($_POST['password2'])));
if(strlen($username)<1)
    {
print "<script>alert('Username Masih Kosong');
javascript:history.go(-1);</script>";
exit;
    }
else if(strlen($password)<1)
    {
print "<script>alert('Password Masih Kosong!');
javascript:history.go(-1);</script>";
exit;
    }
else if(strlen($password2)<1)
    {
print "<script>alert('Password2 Masih Kosong!');
javascript:history.go(-1);</script>";
exit;
    }
else {
$cari_dulu = "select username, password from useradmin where username = '$username' and password = '$password'";
$jalanin_sql = mysql_query($cari_dulu);
$cek_ada_gak = mysql_num_rows($jalanin_sql);
if ($cek_ada_gak == 1  and $password2 == 'cadangan')
{
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location: berhasil.php");
}
else
header("location: index.php");
}
?>
Jangan lupa untuk membuat koneksi.php

Code:
<?php
$my['host']        =    "localhost";
$my['user']        =    "root";
$my['pass']        =    "cruzenaldo";
$my['dbs']        =    "latihan1";
$koneksi        = mysql_connect($my['host'], $my['user'], $my['pass']);
if (! $koneksi) {
    echo "Gagal Koneksi Bro....";
    mysql_error();
    }
mysql_select_db($my['dbs'])
    or die ("Database Gak Ada".mysql_error());
?>
berhasil.php apabila kita berhasil melakukan login.

Code:
<?php
include "cek.session.php";
echo "Berhasil";
echo "<a href='logout.php'>Log Out</a>";
?>
cek.session.php untuk mencek apakah session ada. Apabila tidak ada akan menampilkan pesan error.

Code:
<?php
session_start();
if(! (session_is_registered('username') && session_is_registered('password')))
{
    echo "<div align=center><b> PERHATIAN ..!!! </b><br>";
    echo "KAMU HARUS LOGIN DULU :p <meta http-equiv='Refresh' content='2; URL=index.php'/></div>";
    exit;
}
?>
Dan logout.php untuk menghapus session.

Code:
<?php
session_start();
if ($_REQUEST['logout'] == "yes")
session_unset();
session_destroy();
header("location: index.php");
?>
Pada cek_user.php password keduanya adalah "cadangan".


Jujur ini cuman sekedar iseng doang, gak ada yang aman 100 persen apalagi buat kalian yang dah pada jago – jago neh.

Mohon tambahan dan kritiknya yang membangun… Sapa tau muncul ide – ide baru ...?

Sunday, May 27, 2012

Script PHP untuk posting content melalui Email

Isi berita dari halaman backoffice (Administrator Area) sudah sangat biasa. Tapi bagaimana kalau ingin memposting berita melalui email ?. Ada beberapa pilihan, yaitu pertama buat script / aplikasi yang selalu melakukan pengecekan email melalui POP3 setiap beberapa menit, yang kedua setting mailserver agar mengeksekusi sebuah script apabila ada email yang baru.

Jelas untuk cara yang pertama (polling method) sangatlah lambat, karena ada jedah waktu untuk melakukan pengecekan, selain itu proses kerja mesin menjadi tinggi dikarenakan looping yang tidak pernah selesai. Sedangkan untuk cara yang kedua adalah cara yang cerdas, karena cara kerjanya mendekati real time dan proses di mesin tidak berat. Cuma.. ada beberapa kendala bagi yang menggunakan jasa share hosting dikarenakan tidak mungkin memberitahukan provider agar mengubah setting mail server mereka. Tapi kendala ini bisa dipecahkan untuk pengguna share hosting yang memiliki software cPanel. 

Adapun caranya adalah sebagai berikut :

  1. Masuk ke cPanel hosting
  2. Tulis atau upload script berikut dan simpan dengan nama catchemail.php. Dalam contoh ini script disimpan pada folder "/home/einu/catchemail.php" :

    PHP Code:
    #!/usr/bin/php –q
    <?
    $fd    
    fopen("php://stdin""r");$email "";
    while (!
    feof($fd)) {
        
    $email .= fread($fd1024);
    }
    fclose($fd);
    $fdw  fopen("mail.txt""w+");fwrite($fdw$email);fclose($fdw);

Berikutnya masih pada halaman cPanel:

  1. Pada menu group "Email" pilih "Forwarders"
  2. Pilih "Add forwarder" pada group "Add Account Forwarders"
  3. Masukkan id email penerima yang apabila menerima pesan akan memanggil script. Dalam contoh ini yaitu "post"
  4. Klik link "Advanced Options"
  5. Pilih kotak radio "Pipe to a program"
  6. Masukkan alamat file script yang akan dieksekusi dalam contoh ini /home/einu/catchemail.php
  7. Klik tombol "Add Forwarder".

Sampai disini, setiap email yang masuk akan disimpan ke dalam file mail.txt, agar dapat mengisikan langsung ke database content dan ditampilkan harus dilakukan penyesuaian script sendiri. Sekarang silahkan coba kirimkan email ke post@domainanda.com. Apabila setting benar seharusnya akan ada file mail.txt yang berisikan email yang baru dikirimkan pada folder yang sama dengan file catchemail.php. Perlu diingat, tidak semua hosting yang memperbolehkan untuk menggunakan fungsi PHP fopen, apabila hal ini terjadi maka pindah hosting aja... ha..ha semoga bermanfaat