Tampilkan postingan dengan label database. Tampilkan semua postingan
Tampilkan postingan dengan label database. Tampilkan semua postingan

20100225

Perbandingan MySQL dengan SQL Server

Jika kita sering membuat program database dengan perintah yang kita simpan didalam database seperti stored procedure, function, atau trigger kadang terdapat perbedaan bahasa pemrogramman antara di MySQL dengan SQL Server. Berikut kita akan membahas beberapa perbedaan antara aplikasi database tersebut.
Untuk parameter di dalam SQL Server selalu menggunakan awalan ‘@’, sedangkan pada MySQL kita dapat mengidentifikasikan parameter dengan karakter apapun dan kita bahkan dapat membuat parameter local tanpa mendeklarasikannya terlebih dahulu, yaitu dengan menambahkan karakter “@” pada awalan parameter yang dibuat.

Pada SQL Server kita dapat mengetikan perintah
‘DECLARE v1 [datatype], v2 [datatype], v3 [datatype]’
tetapi pada MySQL kita harus mengetikan perintah
‘DECLARE v1 [datatype]; DECLARE v2 [datatype]; DECLARE v3 [datatype]’

SQL Server tidak perlu mengetikan perintah ‘BEGIN … END’ untuk batasan sebuah Stored Procedure atau Function. Tetapi dalam MySQL kita perlu mengetikan perintah ‘BEGIN … END’ untuk Stored Procedure atau Function yang memiliki lebih dari satu baris perintah.
 
Contoh:
DELIMITER$$
CREATE PROCEDURE proc1(id int)
BEGIN
[statement 1];
[statement 2];
END$$
DELIMITER;

Pada SQL Server kita tidak perlu mengetikan karakter ‘;’ (titik koma) pada setiap akhir perintah. Tetapi pada MySQL membutuhkan karakter ‘;’ pada setiap akhir perintah, karena MySQL merupakan aplikasi console yang membutuhkan pembatas untuk setiap perintah yang dituliskan menjadi pembatas dengan perintah yang lainnya dalam satu Procedure atau Function.

SQL Server memiliki fungsi ‘SET NOCOUNT’ dan ‘@@ROWCOUNT’ untuk memperoleh jumlah row hasil execute. Sedangkan pada MySQL tidak memiliki perintah untuk ‘SET NOCOUNT’, tetapi memiliki fungsi ‘row_count()’ untuk mendapatkan jumlah row hasil execute dari query delete, insert, atau update, ‘found_rows()’ untuk mendapatakan jumlah row hasil execute dari query select.

SQL Server memiliki perintah perulangan ‘WHILE … BEGIN’. Sedangkan MySQL memiliki perintah perulangan ‘WHILE … DO’.

SQL Server dapat menggunakan perintah ‘SELECT’ atau ‘SET’ untuk mengisi data ke variable.
 
Contoh:
DECLARE @v1 int, @v2 int
SELECT @v1 = 10, @v2 = 20
 
Sedangkan MySQL hanya dapat menggunakan perintah ‘SET’ untuk mengisi data ke variable.
 
Contoh:
DECLARE v1 int;
DECLARE v2 int;
SET v1 = 10;
SET v2 = 20;

20100220

10 Celah Keamanan Web

Keamanan Web seharusnya merupakan prioritas no.1 yang harus selalu di pertimbangkan oleh seorang web administrator dan web developer, tetapi umumnya para pembuat web akan memprioritaskan bagaimana membuat web yang menarik bagi pengunjung dan menempatkan keamanan web di urutan ke-sekian. Padahal, umumnya aplikasi web adalah penghubung terdepan antara user ataupun attacker, sekaligus sebagai pintu masuk ke seluruh data yang relatif penting milik perusahaan anda.

Para pembuat/penyedia web umumnya mengkategorikan keamanan web sebagai suatu hal yang hanya perlu di pikirkan setelah web itu di buat dan siap di gunakan oleh pengguna. Banyak ahli keamanan web bahkan menyatakan bahwa, umumnya keseluruhan website yang ada di internet rentan untuk di kuasai oleh penyerang, dan celah tersebut umumnya relatif gampang ditemukan bahkan untuk di eksploitasi.

Ditahun 2007 ini suatu organisasi non-profit Open Web Application Security Project (OWASP) telah merilis satu buah daftar berisi 10 celah teratas yang dapat mengancam website anda, daftar ini pertama kali di rilis di tahun 2004. Daftar yang dibuat di tahun 2007 ini telah sangat berkembang, teknologi web (2.0) baru seperti AJAX dan RIA (Rich internet Application) yang membuat tampilan website semakin menarik dan mengakibatkan timbul berbagai jenis celah baru pun telah di ikutkan.

Berikut adalah daftar yang di keluarkan oleh OWASP dalam "Top 10 2007" :

A1 - Cross Site Scripting (XSS)

Celah XSS, adalah saat pengguna web aplikasi dapat memasukkan data dan mengirimkan ke web browser tanpa harus melakukan validasi dan encoding terhadap isi data tersebut, Celah XSS mengakibatkan penyerang dapat menjalankan potongan kode (script) miliknya di browser target, dan memungkinkan untuk mencuri user session milik target, bahkan sampai menciptakan Worm.

A2 - Injection Flaws

Celah Injeksi, umumnya injeksi terhadap SQL (database) dari suatu aplikasi web. Hal ini mungkin terjadi apabila pengguna memasukkan data sebagai bagian dari perintah (query) yang menipu interpreter untuk menjalankan perintah tersebut atau merubah suatu data.


A3 - Malicious File Execution

Celah ini mengakibatkan penyerang dapat secara remote membuat file yang berisi kode dan data untuk di eksekusi, salah satunya adalah Remote file inclusion (RFI).

A4 - Insecure Direct Object Reference

Adalah suatu celah yang terjadi saat pembuat aplikasi web merekspos referensi internal penggunaan objek, seperti file, direktori, database record, dll

A5 - Cross Site Request Forgery (CSRF)

Celah ini akan memaksa browser target yang sudah log-in untuk mengirimkan "pre-authenticated request"terhadap aplikasi web yang diketahui memiliki celah, dan memaksa browser target untuk melakukan hal yang menguntungkan penyerang.

A6 - Information Leakage and Improper Error Handling

Penyerang menggunakan informasi yang didapatkan dari celah yang di akibatkan oleh informasi yang diberikan oleh web aplikasi seperti pesan kesalahan (error) serta konfigurasi yang bisa di lihat.

A7 - Broken Authentication and Session Management

Celah ini merupakan akibat buruknya penanganan proses otentikasi dan manajemen sesi, sehingga penyerang bisa mendapatkan password, atau key yang di gunakan untuk otentikasi.

A8 - Insecure Cryptographic Storage

Aplikasi web umumnya jarang menggunakan fungsi kriptografi untuk melindungi data penting yang dimiliki, atau menggunakan fungsi kriptografi yang di ketahui memiliki kelemahan.

A9 - Insecure Communications

Sedikit sekali aplikasi web yang mengamankan jalur komunikasinya, hal inilah yang dimanfaatkan oleh penyerang sebagai celah untuk mendapatkan informasi berharga.

A10 - Failure to Restrict URL Access

Seringkali, aplikasi web hanya menghilangkan tampilan link (URL) dari pengguna yang tidak berhak, tetapi hal ini dengan sangat mudah dilewati dengan mengakses URL tersebut secara langsung.

Untuk lebih lengkapnya dalam me-review aplikasi web anda, anda dapat membaca langsung dari situs resmi OWASP

20100216

Setting DHCP di Server Linux

DHCP (Dynamic Configuration Protocol) adalah layanan yang secara otomatis memberikan nomor IP kepada komputer yang memintanya. Komputer yang memberikan nomor IP disebut sebagai DHCP server, sedangkan komputer yang meminta nomor IP disebut sebagai DHCP Client. Dengan demikian administrator tidak perlu lagi harus memberikan nomor IP secara manual pada saat konfigurasi TCP/IP, tapi cukup dengan memberikan referensi kepada DHCP Server.
Pada saat kedua DHCP client dihidupkan , maka  komputer tersebut melakukan request ke DHCP-Server untuk mendapatkan nomor IP. DHCP menjawab dengan memberikan nomor IP yang ada di database DHCP. DHCP Server setelah memberikan nomor IP, maka server meminjamkan (lease) nomor IP yang ada ke DHCP-Client dan mencoret nomor IP tersebut dari daftar pool. Nomor IP diberikan bersama dengan subnet mask dan default gateway. Jika tidak ada lagi nomor IP yang dapat diberikan, maka client tidak dapat menginisialisasi TCP/IP, dengan sendirinya tidak dapat tersambung pada jaringan tersebut.
Setelah periode waktu tertentu, maka pemakaian DHCP Client tersebut dinyatakan selesaidan client tidak memperbaharui permintaan kembali, maka nomor IP tersebut dikembalikan kepada DHCP Server, dan server dapat memberikan nomor IP tersebut kepada Client yang membutuhkan. Lama periode ini dapat ditentukan dalam menit, jam, bulan atau selamanya. Jangka waktu disebut leased period.
Cara Kerja DHCP :