--Selamat Berkunjung. Jika Ingin Mendapatkan Update Artikel Dari KetikSpasi, Klik Button Follow Disebelah Kanan--

Masih Kosong

Senin, 03 Oktober 2011

Cara Instalasi Microsoft SAPI speech SDK pada komponen Delphi


After you install the SAPI 5.1 SDK available from Microsoft by clicking HERE
you will find that it gives you most of the important methods, events, types and 
constants through a registered type library.  This means that you can access 
SAPI 5.1 functionality through late bound or early bound Automation.
From the Delphi menu select "Project | Import Type Library"
and select "Microsoft Speech Object Library (Version 5.1)
from the list of type libraries.
 

Minggu, 02 Oktober 2011

Memaksimalkan Keamanan Pada CMS Joomla versi 1.0, 1.5, dan 1.6

Kopas dari http://sonnysoleman.wordpress.com (2011/08/15) yang membahas mengenai pengamanan/ security pada joomla dengan mengkonfigurasi kembali file “configuration.php” yang terletak di root folder dari Joomla site kita menjadi target utama Hacker untuk bisa akses masuk / login ke Control Panel / Backend Administrator Joomla, juga ke isi perut joomla yaitu database MySQL. Berikut ini tips ampuh untuk mengamankan file “configuration.php” tersebut.
Dengan teknik RFI (Remote File Inclusion) hacker bisa menemukan celah / lubang di Joomla site kita, jika celah / lubang ini tidak ditutup (setting PHP.ini, baca artikel saya sebelumnya), maka hacker bisa meletakkan Script Kiddies di salah satu sub folder dalam joomla site kita, begitu Script Kiddies ini dijalankan oleh hacker, maka dengan mudah file “configuration.php” ditemukan dan dibaca isinya oleh hacker.
File “configuration.php“, dari versi awal CMS Joomla sampai ke versi terakhir tidak banyak mengalami perubahan / kemajuan yang berarti, hanya berubah diisinya saja. Hal ini telah saya amati sejak Joomla versi 1.0.X sampai versi terbaru 1.7.0.
File “configuration.php” yang terletak di root folder dari Joomla site kita menjadi target utama Hacker untuk bisa akses masuk / login ke Control Panel / Backend Administrator Joomla, juga ke isi perut joomla yaitu database MySQL. Berikut ini tips ampuh untuk mengamankan file “configuration.php” tersebut.

Dengan teknik RFI (Remote File Inclusion) hacker bisa menemukan celah / lubang di Joomla site kita, jika celah / lubang ini tidak ditutup (setting PHP.ini, baca artikel saya sebelumnya), maka hacker bisa meletakkan Script Kiddies di salah satu sub folder dalam joomla site kita, begitu Script Kiddies ini dijalankan oleh hacker, maka dengan mudah file “configuration.php” ditemukan dan dibaca isinya oleh hacker.
File “configuration.php“, dari versi awal CMS Joomla sampai ke versi terakhir tidak banyak mengalami perubahan / kemajuan yang berarti, hanya berubah diisinya saja. Hal ini telah saya amati sejak Joomla versi 1.0.X sampai versi terbaru 1.7.0.
Kelemahan utama file “configuration.php” ini :
- nama filenya tidak pernah berubah
- Terletak (selalu) di root folder dari joomla sitenya
- isinya yang merupakan “text murni” sehingga bisa dibaca dengan mudah.
Tiga kelemahan ini, bisa dengan mudah dimanfaatkan oleh hacker, untuk menembus Joomla site kita.
Untuk mengatasi tiga kelemahan ini, saya coba melakukan sedikit riset terhadap file “configuration.php” dari semua versi Joomla dan cara Joomla site mengaksesnya. Hasilnya saya menemukan teknik pengamanan yang cukup efektif terkait file “configuration.php” ini.
Pengamanannya terdiri dari 2 bagian :
1. Mengubah nama file / rename file “configuration.php” dan memindahkan lokasinya.
2. Mengenkripsi variable nama database dan password akses ke database MySQL joomla site.
Berikut ini langkah-langkahnya dalam berbagai versi Joomla, sesuaikan dengan versi Joomla yang anda gunakan. Scroll ke bawah untuk melihat versi yang sesuai.

Pengamanan di Joomla versi 1.0.X :
1. Gunakan aplikasi FTP (Cute_FTP atau WS_FTP), untuk mendownload file-file berikut ini dari Joomla site milik anda :
- index.php
- index2.php
- globals.php
- administrator/index.php
- administrator/index2.php
- administrator/index3.php
- administrator/components/com_admin/admin.admin.html.php
- administrator/components/com_config/admin.config.html.php
- administrator/components/com_config/admin.config.php
- administrator/components/com_config/config.class.php
- administrator/components/com_languages/admin.languages.php
- administrator/includes/auth.php
- includes/database.mysql5.php
- includes/database.mysqli.php
- includes/database.php
- includes/joomla.php
- includes/sef.php
2. Letakkan file-file yang anda download tersebut sesuai dengan subfoldernya (bikin sub foldernya jika belum ada) di harddisk PC anda. samakan persis penamaan subfoldernya.
3. Masih melalui aplikasi FTP, download file “configuration.php” dari root folder Joomla site anda. Letakkan hasil downloadnya terpisah dari lokasi file-file sebelumnya (nomor 1).
4. Tutup / close aplikasi FTP-nya.
5. Copy dan letakkan duplikatnya di folder “includes” hasil download nomor (1) di atas. sehingga juga terdapat file “configuration.php” di dalam folder “includes”.
6. Rename / ubah nama file “includes/configuration.php” menjadi misalnya :
myset.php
Terserah anda, sebaiknya nama filenya bersifat pribadi dan tidak mudah ditebak oleh orang lain, yang penting akhirannya harus “.PHP”.
7. Gunakan aplikasi (Macromedia / Adobe) Dreamweaver, Jalankan tanpa membuka / open satu file pun.
8. Dalam editor Dreamweaver, tekan tombol Ctrl+F, untuk membuka kotak dialog “Find & Replace”.
9. Isi kotak “Find” dan “Replace” seperti gambar berikut :
Isi field Find & Replace
10. Ubah bagian “Find in :” menjadi “Folder”, lalu browse ke folder tempat anda mendownload file2x tadi (nomor 1), browse ke root foldernya. misalnya : C:\download\joomla
Folder find setting
11. Lalu klik tombol . Jika muncul dialog konfirmasi seperti berikut.
Konfirmasi Replace
klik tombol “Yes”.
12. Hasilnya semua text “configuration.php” pada file2x tersebut akan berganti menjadi “includes/myset.php“.
Hasil find & replace
13. Masih dalam editor Dreamweaver, open / buka file “includes/myset.php
14. Perhatikan bagian info nama database & passwordnya, seperti berikut :
isi file includes/myset.php
15. Gunakan browser internet, buka link berikut ini : http://www.crypo.com/eng_base64c.php
16. Copy text nama databasenya : u4231_dbjoomla
17. Lalu paste ke browser internet, seperti gambar berikut.
Paste text nama database
18. Klik tombol “encrypt”, sehingga hasilnya jadi seperti berikut :
hasil klik tombol encrypt
19. Copy hasil text enkripsi (base64) tersebut ke dalam variable nama database. pada file “includes/myset.php
20. Lakukan hal yang sama dengan isi variabel passwordnya, sehingga hasil akhirnya (terenkripsi / base64), jadi seperti ini :
nama database & password terenkripsi
21. Masih dari dalam editor Dreamweaver, buka / open file “includes/database.php
22. Scroll / temukan syntax berikut :
function database( $host=’localhost’, $user, $pass, $db=, $table_prefix=, $goOffline=true ) {
Tepat sesudahnya tambahkan syntax berikut :
$db = base64_decode($db);
$pass = base64_decode($pass);
23. Buka / open file “includes/database.mysql5.php
24. Scroll / temukan syntax berikut :
function database( $host=’localhost’, $user, $pass, $db=, $table_prefix=, $goOffline=true ) {
25. Tepat sesudahnya tambahkan syntax berikut :
$db = base64_decode($db);
$pass = base64_decode($pass);
26. Simpan / save semua perubahan / editing yang telah kita lakukan, sekarang upload kembali file2xnya ke Joomla site anda (gunakan aplikasi FTP), sesuaikan dengan foldernya masing-masing file (lihat nomor 1.). termasuk file “configuration.php” yang telah kita rename menjadi “myset.php” tadi ke folder “includes”. Lalu hapus file “configuration.php” di root folder Joomla site anda. Silahkan scroll ke bagian Penutup (paling bawah) di artikel ini.

Pengamanan di Joomla versi 1.5.X :
1. Gunakan aplikasi FTP (Cute_FTP atau WS_FTP), untuk mendownload file-file berikut ini dari Joomla site milik anda :
- administrator/components/com_admin/tmpl/sysinfo_config.php
- administrator/components/com_config/controllers/application.php
- administrator/includes/framework.php
- libraries/joomla/application/application.php
- libraries/joomla/database/database/mysql.php
- libraries/joomla/database/database/mysqli.php
- plugins/editors/xstandard/attachmentlibrary.php
- plugins/editors/xstandard/imagelibrary.php
- xmlrpc/includes/framework.php
2. Letakkan file-file yang anda download tersebut sesuai dengan subfoldernya (bikin sub foldernya jika belum ada) di harddisk PC anda. samakan persis penamaan subfoldernya.
3. Masih melalui aplikasi FTP, download file “configuration.php” dari root folder Joomla site anda. Letakkan hasil downloadnya terpisah dari lokasi file-file sebelumnya (nomor 1).
4. Tutup / close aplikasi FTP-nya.
5. Copy dan letakkan duplikatnya di folder “includes” hasil download nomor (1) di atas. sehingga juga terdapat file “configuration.php” di dalam folder “includes”.
6. Rename / ubah nama file “includes/configuration.php” menjadi misalnya :
myset.php
Terserah anda, sebaiknya nama filenya bersifat pribadi dan tidak mudah ditebak oleh orang lain, yang penting akhirannya harus “.PHP”.
7. Gunakan aplikasi (Macromedia / Adobe) Dreamweaver, Jalankan tanpa membuka / open satu file pun.
8. Dalam editor Dreamweaver, tekan tombol Ctrl+F, untuk membuka kotak dialog “Find & Replace”.
9. Isi kotak “Find” dan “Replace seperti gambar berikut :
Isi field Find & Replace
10. Ubah bagian “Find in :” menjadi “Folder”, lalu browse ke folder tempat anda mendownload file2x tadi (nomor 1), browse ke root foldernya.
misalnya : C:\download\joomla
Folder find setting
11. Lalu klik tombol . Jika muncul dialog konfirmasi seperti berikut
Konfirmasi Replace
klik tombol “Yes”.
12. Hasilnya semua text “configuration.php” pada file2x tersebut akan berganti menjadi “includes/myset.php“.
Hasil find & replace joomla 1.5.X
13. Masih dalam editor Dreamweaver, open / buka file “includes/myset.php
14. Perhatikan bagian info nama database & passwordnya, seperti berikut :
Nama database & password di file "configuration.php"
15. Gunakan browser internet, buka link berikut ini : http://www.crypo.com/eng_base64c.php
16. Copy text nama databasenya : u4231_dbjoomla
17. Lalu paste ke browser internet, seperti gambar berikut.
Paste text nama database
18. Klik tombol “encrypt”, sehingga hasilnya jadi seperti berikut :
hasil klik tombol encrypt
19. Copy hasil text enkripsi (base64) tersebut ke dalam variable nama database.
20. Lakukan hal yang sama dengan isi variabel passwordnya, sehingga hasil akhirnya (terenkripsi / base64), jadi seperti ini :
Nama database & password terenkripsi
21. Dari editor Dreamweaver, open / buka file “libraries/joomla/database/database/mysql.php“.
22. Scroll / temukan syntax seperti berikut ini :
// perform a number of fatality checks, then return gracefully
if (!function_exists( ‘mysql_connect’ )) {
23. Tepat sebelumnya, tambahkan syntax berikut ini :
$password = base64_decode($password);
$database = base64_decode($database);
24. Open / buka file “libraries/joomla/database/database/mysqli.php
25. Scroll / temukan syntax berikut ini :
// Unlike mysql_connect(), mysqli_connect() takes the port and socket
26. Tepat sebelumnya, tambahkan syntax berikut ini :
$password = base64_decode($password);
$database = base64_decode($database);
27. Simpan / save semua perubahan / editing yang telah kita lakukan, sekarang upload kembali file2xnya ke Joomla site anda (gunakan aplikasi FTP), sesuaikan dengan foldernya masing-masing file (lihat nomor 1.). termasuk file “configuration.php” yang telah kita rename menjadi “myset.php” tadi ke folder “includes”. Lalu hapus file “configuration.php” di root folder Joomla site anda. Silahkan scroll ke bagian Penutup (paling bawah) di artikel ini.

Pengamanan di Joomla versi 1.6.X :
1. Gunakan aplikasi FTP (Cute_FTP atau WS_FTP), untuk mendownload file-file berikut ini dari Joomla site milik anda :
- administrator/components/com_config/models/application.php
- administrator/includes/framework.php
- libraries/joomla/database/database/mysql.php
- libraries/joomla/database/database/mysqli.php
2. Letakkan file-file yang anda download tersebut sesuai dengan subfoldernya (bikin sub foldernya jika belum ada) di harddisk PC anda. samakan persis penamaan subfoldernya.
3. Masih melalui aplikasi FTP, download file “configuration.php” dari root folder Joomla site anda. Letakkan hasil downloadnya terpisah dari lokasi file-file sebelumnya (nomor 1).
4. Tutup / close aplikasi FTP-nya.
5. Copy dan letakkan duplikatnya di folder “includes” hasil download nomor (1) di atas. sehingga juga terdapat file “configuration.php” di dalam folder “includes”.
6. Rename / ubah nama file “includes/configuration.php” menjadi misalnya :
myset.php
Terserah anda, sebaiknya nama filenya bersifat pribadi dan tidak mudah ditebak oleh orang lain, yang penting akhirannya harus “.PHP”.
7. Gunakan aplikasi (Macromedia / Adobe) Dreamweaver, Jalankan tanpa membuka / open satu file pun.
8. Dalam editor Dreamweaver, tekan tombol Ctrl+F, untuk membuka kotak dialog “Find & Replace”.
9. Isi kotak “Find” dan “Replace seperti gambar berikut :
Isi field Find & Replace
10. Ubah bagian “Find in :” menjadi “Folder”, lalu browse ke folder tempat anda mendownload file2x tadi (nomor 1), browse ke root foldernya.
misalnya : C:\download\joomla
Folder find setting
11. Lalu klik tombol . Jika muncul dialog konfirmasi seperti berikut
Konfirmasi Replace
klik tombol “Yes”.
12. Hasilnya semua text “configuration.php” pada file2x tersebut akan berganti menjadi “includes/myset.php“.
hasil find & replace joomla 1.6.x
13. Masih dalam editor Dreamweaver, open / buka file “includes/myset.php
14. Perhatikan bagian info nama database & passwordnya, seperti berikut :
isi file "includes/myset.php"
15. Gunakan browser internet, buka link berikut ini : http://www.crypo.com/eng_base64c.php
16. Copy text nama databasenya : u4231_dbjoomla
17. Lalu paste ke browser internet, seperti gambar berikut.
Paste text nama database
18. Klik tombol “encrypt”, sehingga hasilnya jadi seperti berikut :
hasil klik tombol encrypt
19. Copy hasil text enkripsi (base64) tersebut ke dalam variable nama database.
20. Lakukan hal yang sama dengan isi variabel passwordnya, sehingga hasil akhirnya (terenkripsi / base64), jadi seperti ini :
Nama database & password terenkripsi
21. Dari editor Dreamweaver, open / buka file “libraries/joomla/database/database/mysql.php“.
22. Scroll / temukan syntax berikut ini :
// Perform a number of fatality checks, then return gracefully
23. Tepat sebelumnya tambahkan syntax berikut ini :
$password = base64_decode($password);
$database = base64_decode($database);
24. Open / buka file “libraries/joomla/database/database/mysqli.php“.
25. Scroll / temukan syntax berikut ini :
// Unlike mysql_connect(), mysqli_connect() takes the port and socket
26. Tepat sebelumnya, tambahkan syntax berikut :
$password = base64_decode($password);
$database = base64_decode($database);
27. Simpan / save semua perubahan / editing yang telah kita lakukan, sekarang upload kembali file2xnya ke Joomla site anda (gunakan aplikasi FTP), sesuaikan dengan foldernya masing-masing file (lihat nomor 1.). termasuk file “configuration.php” yang telah kita rename menjadi “myset.php” tadi ke folder “includes”. Lalu hapus file “configuration.php” di root folder Joomla site anda. Silahkan scroll ke bagian Penutup (paling bawah) di artikel ini.

Pengamanan di Joomla versi 1.7.X :
1. Gunakan aplikasi FTP (Cute_FTP atau WS_FTP), untuk mendownload file-file berikut ini dari Joomla site milik anda :
- administrator/components/com_admin/models/sysinfo.php
- administrator/components/com_config/models/application.php
- administrator/includes/framework.php
- libraries/joomla/database/database/mysql.php
- libraries/joomla/database/database/mysqli.php
2. Letakkan file-file yang anda download tersebut sesuai dengan subfoldernya (bikin sub foldernya jika belum ada) di harddisk PC anda. samakan persis penamaan subfoldernya.
3. Masih melalui aplikasi FTP, download file “configuration.php” dari root folder Joomla site anda. Letakkan hasil downloadnya terpisah dari lokasi file-file sebelumnya (nomor 1).
4. Tutup / close aplikasi FTP-nya.
5. Copy dan letakkan duplikatnya di folder “includes” hasil download nomor (1) di atas. sehingga juga terdapat file “configuration.php” di dalam folder “includes”.
6. Rename / ubah nama file “includes/configuration.php” menjadi misalnya :
myset.php
Terserah anda, sebaiknya nama filenya bersifat pribadi dan tidak mudah ditebak oleh orang lain, yang penting akhirannya harus “.PHP”.
7. Gunakan aplikasi (Macromedia / Adobe) Dreamweaver, Jalankan tanpa membuka / open satu file pun.
8. Dalam editor Dreamweaver, tekan tombol Ctrl+F, untuk membuka kotak dialog “Find & Replace”.
9. Isi kotak “Find” dan “Replace seperti gambar berikut :
Isi field Find & Replace
10. Ubah bagian “Find in :” menjadi “Folder”, lalu browse ke folder tempat anda mendownload file2x tadi (nomor 1), browse ke root foldernya.
misalnya : C:\download\joomla
Folder find setting
11. Lalu klik tombol . Jika muncul dialog konfirmasi seperti berikut
Konfirmasi Replace
klik tombol “Yes”.
12. Hasilnya semua text “configuration.php” pada file2x tersebut akan berganti menjadi “includes/myset.php“.
13. Masih dalam editor Dreamweaver, open / buka file “includes/myset.php
14. Perhatikan bagian info nama database & passwordnya, seperti berikut :
Isi file "includes/myset.php"
15. Gunakan browser internet, buka link berikut ini : http://www.crypo.com/eng_base64c.php
16. Copy text nama databasenya : u4231_dbjoomla
17. Lalu paste ke browser internet, seperti gambar berikut.
Paste text nama database
18. Klik tombol “encrypt”, sehingga hasilnya jadi seperti berikut :
hasil klik tombol encrypt
19. Copy hasil text enkripsi (base64) tersebut ke dalam variable nama database.
20. Lakukan hal yang sama dengan isi variabel passwordnya, sehingga hasil akhirnya (terenkripsi / base64), jadi seperti ini :
Nama database & password terenkripsi
21. Dari editor Dreamweaver, open / buka file “libraries/joomla/database/database/mysql.php“.
23. Scroll / temukan syntax berikut ini :
// Make sure the MySQL extension for PHP is installed and enabled.
24. Tepat sebelumnya tambahkan syntax berikut ini :
$options['password'] = base64_decode($options['password']);
$options['database'] = base64_decode($options['database']);
25. Open / buka file “libraries/joomla/database/database/mysqli.php“.
26. Scroll / temukan syntax berikut ini :
$options['socket'] = null;
27. Tepat sesudahnya, tambahkan syntax berikut :
$options['password'] = base64_decode($options['password']);
$options['database'] = base64_decode($options['database']);
28. Simpan / save semua perubahan / editing yang telah kita lakukan, sekarang upload kembali file2xnya ke Joomla site anda (gunakan aplikasi FTP), sesuaikan dengan foldernya masing-masing file (lihat nomor 1.). termasuk file “configuration.php” yang telah kita rename menjadi “myset.php” tadi ke folder “includes”. Lalu hapus file “configuration.php” di root folder Joomla site anda.

Penutup
Dengan pengamanan yang telah kita lakukan, maka tingkat keamanan Joomla site kita menjadi naik satu level lagi, karena hacker menjadi susah mencari file konfigurasi joomla dan tidak mudah memecahkan nama database dan password akses ke database MySQL-nya.
Guna hasil lebih baik pada bagian enkripsi nama database dan passwordnya, kita bisa buat fungsi Encrypt / Decrypt buatan kita sendiri yang tidak mengikuti fungsi enkripsi / dekripsi kepunyaan PHP standard. Sisipkan fungsinya di dalam file-file :
- includes/database.php
- includes/database.mysql5.php
- includes/database.mysqli.php
- libraries/joomla/database/database/mysql.php
- libraries/joomla/database/database/mysqli.php
Sesuai dengan versi Joomla yang kita gunakan.
Semoga Bermanfaat

Sabtu, 01 Oktober 2011

CodeIgniter v.1.7 Versus v.2.2

Kali ini saya akan membeberkan beberapa perubahan pada Framework Codeigniter v2.x dengan versi sebelumnya, versi 1.7.x (yg berakhir di v1.7.3)
Tetapi sebelumnya saya akan menjelaskan asal mula CI. CI merupakan sebuah framework PHP yang sudah banyak digunakan oleh perusahaan profesional untuk membangun sebuah aplikasi web. CI ini bukanlah dikembangkan oleh komunitas, tetapi oleh sebuah perusahaan (vendor), yang bernama EllisLab. EllisLab mempunyai produk CMS yang bernama ExpressionEngine. Kabar – kabarnya sih CI ini berasal dari CMS ExpressionEngine ini. Jadi bukan ExpressionEngine dibangun dengan CI, tetapi justru CI adalah hasil ekstraksi (atau kompresi) dari ExpressionEngine.

Memperbaiki Eror Pada Xampp Saat Instal Joomla 1.7

Setelah lama berkutat di joomla 1.5, iseng – iseng pengen cobain joomla versi 1.7. Dimulai dengan instalasi xampp terbaru dulu karena xampp 1.6.2 yang dipakai sebelumnya tidak support joomla 1.7.
Lanjut instalasi joomla 1.7, ketika instalasi selesai kok terdapat error
Strict Standards: Accessing static property JCache::$_handler as non static in C:xampphtdocs17librariesjoomlacachecache.php on line 396
lha.. kenapa semua ini????