STMIKBG MATARAM

Situs Online Anak-Anak Bumi Gora

Archive for May, 2008


Pengembangan Aplikasi Client

Teknik pengembangan aplikasi client untuk Microsoft SQL Server 2005 sudah seyogyanya memanfaatkan class class akses data yang tersedia dalam framework .NET. Class ini berupa ADO.NET yakni platform akses data utama dalam Framework .NET, berupa sebuah kumpulan class .NET yang bisa digunakan untuk mengakses data dalam berbagai jenis peyimpanan data.

Beberapa class yang penting dalam ADO.NET 2.0 adalah :

  • System.Data.SqlClient.SqlConnection yaitu sebuah koneksi kedatabase SQL Server.
  • System.Data.SqlClient.SqlCommand yaitu sebuah perintah (Semacam perintah Transact-SQL atau stored procedure) yang bisa dijalankan dalam database.
  • System.Data.SqlClient.SqlParameter yaitu class yang digunakan untuk menentukan parameter untuk SqlCommand.
  • System.Data.DataSet yaitu sebuah representasi data relasional yang bisa diupdate yang berada disisi klien. Dataset ini bersifat disconected.
  • System.Data.SqlClient.SqlDataAdapter yaitu sebuah class yang digunakan untuk menghubungkan DataSet kesumber data SQL Server.
  • System.Data.SqlClient.SqlDataReader sebuah cursor disisi client yang digunakan untuk membaca data pada SQL Server, bersifat forward only dan read only.
  • System.Data.SqlClient.SqlTransaction Sebuah transaksi dimana beberapa perintah bisa dijalankan sekaligus.

Peningkatan Pada ADO.NET 2.0
ADO.NET 2.0 telah menyertakan dukungan terhadap operasi akses data secara asynchronous, sehingga memungkinkan kita menjalankan perintah-perintah yang tidak bergantung pada penyelesaian perintah sebelumnya.

SQL Server 2005 mendukung MARS (mutiple active result sets). Pada versi ADO.NET sebelumnya anda harus menutup sebuah SQLDataHeader sebelum menggunakan koneksinya untuk operasi yang lain. MARS memungkinkan kita menggunakan sebuah koneksi walaupun koneksi tersebut sedang digunakan oleh sebuah obyek SqlDataHeader.

ADO.NET 2.0 juga telah menyediakan class System.Data.SqlClient.SqlBulkCopy yang bisa digunakan untuk melaksanakan operasi penyalinan secara banyak sekaligus dari berbagai DataHeader atau obyek DataTable. Selain itu anda juga bisa melakukan update massal sekaligus dengan mengatur properti UpdateBatchSize sehingga tidak perlu lagi melakukan update untuk setiap row.

Peningkatan-peningkatan lain adalah dalam hal memanfaatkan kemampuan SQL Server 2005 untuk memberikan notifikasi kepada program klien jika data pada server telah berubah sejak program klien menariknya, memanfaatkan snapshot isolation mode, serta mendukung semua tipe data SQL Server 2005.

Berita Seputar Kenaikan BBM

stmikbg.com - Akhir-akhir ini kenaikan BBM berimbas pada kenaikan harga barang-barang lainnya. Banyak kalangan mengeluhkan kenaikan BBM ini, seperti yang dikatakan oleh seorang ibu rumah tangga berikut ini “Harga bahan pokok semuanya naek.. Cuman kolor aja mas yang tetap turun..!

Kenaikan BBM ini juga memicu adanya kelangkaan BBM pada SPBU, hal ini membuat para pengelola SPBU mengambil langkah pengamanan, misalnya dilarang membeli BBM dengan jerigen, Hal ini memang disatu sisi menguntungkan para pembeli BBM lainnya tapi disatu sisi merugikan. Pihak yang paling dirugikan yakni terutama para nelayan dipesisir pantai, karena adanya larangan membeli BBM dengan jerigen ini para nelayan terpaksa berhenti melaut. Seperti yang dikeluhkan seorang nelayan dengan rada mengeluh mereka protes “Jika membeli BBM dengan jerigen dilarang, tidak mungkin kami para nelayan mengusung perahu ke SPBU buat ngisi BBM” ujarnya.

Wah, peraturan pemerintah ini bak pisau bermata dua, Kadang mengena kadang meleset. Dan yang parahnya melesetnya terlalu jauh. Pak pemerintah, ingat amanah pak, ingat akhirat… Semua diminta pertanggung jawaban, kita tidak selamanya hidup didunia.

Bermain dengan XML

Sekarang kita akan belajar menggunakan XML untuk akses data di MS-SQL server 2000 Keatas. Mulai versi 2000 kita bisa menikmati mudahnya menghasilkan XML dari record data SQL Server sekaligus menyimpannya kedalam database.

Klausul FOR XML

Untuk menghasilkan dokumen XML dari baris (row/record) data, cukup berikan perintah Select yang biasa dipakai untuk mengambil data, dan tambahankan klausa FOR XML diakhir perintah. Contoh :

Select Cust.CustomerID,OrderHeader.SalesOrderID,OrderHeader.Status,Cust.CustomerType From Cust Cust INNER JOIN OrderHeader OrderHeader On Cust.CustomerID = OrderHeader.CustomerID FOR XML AUTO

Perintah diatas akan mengambil data dari table Customer(Cust) dan Sales Order Header (OrderHeader) kemudian menampilkannya dalam format dokumen XML. Mode AUTO yang ditambahkan diklausa tersebut berarti menyusun XML yang dihasilkan dalam bentuk pohon XML sederhana. Mode lainnya adalah : RAW, EXPLICIT dan PATH

Fungsi OPENXML

Fungsi OPENXML digunakan untuk menampilkan baris data dari dokumen XML. Fungsi sudah ada sejak versi 2000 dan ditingkatkan pada versi 2005, termasuk pemakaian variabel xml.

Silahkan lihat pemakaian fungsi OPENXML berikut ini :

DECLARE @doc xml
SET @doc = ‘<?xml version=”1.0″?>
<SalesInvoices InvoiceID=”1000″ CustomerID=”123″>
<Items>
<Item ProductCode=”12″ Quantity=”2″ UnitPrice=”12.99″/>
<Item ProductCode=”41″ Quantity=”2″ UnitPrice=”17.45″/>
<Item ProductCode=”2″ Quantity=”2″ UnitPrice=”2.99″/>
</Items>
</SalesInvoice>’

Declare @dochandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @doc
SELECT * FROM
OPENXML(@docHandle,’SalesInvoice/Items/Item’,1)
WITH
(ProductCode Int, Quantity Int, UnitPrice smallmoney)
EXEC sp_xmlremovedocument @docHandle

LFI Vurnerable di stmikbumigora.ac.id

Duh saya selaku mahasiswa di stmik bumigora sangat malu kalo tau web http://www.stmikbumigora.ac.id tidak pernah lepas dari namanya lubang keamanan. Dan ditambah lagi kalo personel pengajar yang terhormat bapak dan ibu dosen yang saya cintai :P kok terlalu sibuk gembar-gembor kehebatan? Tapi kok webnya gak bisa dibenarin ?

Seharusnya dikampus juga diajarin tentang network security, bukannya teori melulu. Kami butuh pemahaman bukan cerita. Ok kita akan bahas letak kesalahan logika pada web stmikbumigora.ac.id tersebut. Pada file /home/stmikbg/public_html/index1.php dibaris 215 terdapat sebuah variabel yang akan membuka stream untuk mengeksekusi file pada lokasi tertentu.

Admin http://www.stmikbumigora.ac.id seharusnya bersukur karena keamananan dari sisi hosting selangkah lebih maju dengan mematikan URL file akses. Seperti yang ditampilkan seperti ini

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/stmikbg/public_html/index1.php on line 215

Bayangkan jika webhosting tempat http://www.stmikbumigora.ac.id ini dihosting tentu akan sangat berbahaya karena bisa diinject secara remote. Lantas dari mana celah yang bisa diexploitasi ? Kita akan analisa dulu bagaimana web ini menampilkan halamannya.

1. Perhatikan link berikut http://stmikbumigora.ac.id/index1.php?p=visimisi disini file index1.php lewat variabel p akan memangil sebuah file dengan nama visimisi.php, nah disini akan keliatan file index1.php secara otomatis akan menambahkan ektensi .php pada akhir url yang disubmit oleh client. Atau dengan kata lain filter hanya untuk file-file .php

2. Karena file yang difilter adalah file .php saja maka kita kemungkinan tidak bisa mengexploitasi file-file konfigurasi pada /etc/passwd atau mungkin konfigigurasi apache dan cpanel nya .

3. Karena secara remote tidak mungkin untuk diexploit maka serangan lebih diarahkan pada local file. Ditambah dengan pengamanan filter .php, Jika anda mencoba http://stmikbumigora.ac.id/index1.php?p=../../../../../../etc/passwd hasilnya akan seperti ini Warning: include(../../../../../../etc/passwd.php) [function.include]: failed to open stream: No such file or directory in /home/stmikbg/public_html/index1.php on line 215

4. Ketika kita mencoba menjalankan http://stmikbumigora.ac.id/index1.php?p=index1 bisa dieksekusi jadi file index1.php ini benar-benar bisa diexploitasi secara local. Coba admin bayangkan jika ada user yang nekat menyerang web ini dengan jalan register kehosting untuk domainnya, cuma untuk menaruh file phpshell dan menginjeksi script pada situs stmikbumigora.ac.id apa yang akan terjadi? Say good bye to stmik bumi gora!!!!

SOA dalam sebuah konsep

Akhir-akhir ini sering kali kita dengar ada sebuah konsep baru dalam pengembangan perangkat lunak yang biasa disebut dengan SOA. Sebagai mahasiswa IT disekolah komputer kayaknya kita perlu memahami lebih dalam tentang konsep SOA ini.

SOA singkatan dari Service Oriented Architecture. Dengan SOA, aplikasi-aplikasi tidak lagi dibangun bersifat monolitik. Alih-alih, SOA dibentuk dengan merangkai berbagai service modular. “Suatu service bisa berupa satu fungsi dari sebuah piranti lunak, misalnya fungsi GetAccountBalance atau CancelOrder. Fungsi tersebut bisa dieksekusi atas permintaan sistem apapun, tanpa memandang platform sistem operasinya, bahasa pemrogramannya, maupun lokasi geografisnya.

Implementasinya SOA dewasa ini, dalam bentuk web services , boleh dibilang merevolusi pengembangan piranti lunak. Dulu memang sudah ada distributed software architecture , yang juga menjanjikan agility dan penggunaan kembali komponen. Namun, cara itu memiliki kelemahan.

Untuk melakukan integrasi, seluruh komponen harus menggunakan object model atau bahasa pemrograman yang sama. Nah, web services menghilangkan halangan itu dan sanggup beroperasi melampaui batas yang memisahkan platform Microsof dari Unix, atau .Net dari J2EE,

Singkatnya, SOA bisa membantu menyederhanakan integrasi aplikasi dan manajemen proses.Jika Anda ingin memiliki proses bisnis yang lebih fleksibel dan adaptif, pindahkan aplikasi-aplikasi TI Anda ke SOA.

(more…)