English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified

Minggu, 11 Januari 2009

Ruang Kerja Flash MX




Menu

memungkinkan kita untuk melihat dan mengunakan semua fasilitas yang diberikan oleh flash


Tool Box

Box yang berisi alat-alat yang akan kita gunakan untuk kegiatan pada flash


Stage

Jika pada film atau layer lebar ada latar pengambilan film aka stage pada fash ini digunakan ntuk kreasi animasi yang akan kita buat


Properti

Papan informasi tentang obek yang berada pada stage


Panel

Adalah fasiltas yan nantinya akan digunakan untuk memperindah animasi flash kita

Senin, 05 Januari 2009

PengInstalan Macromedia Flash MX

  1. buka master Makromedia Flash MX anda pada direktori pada computer atau anda bias mendownload software free di http://www.soft32.com/download_353.html
  2. setelah anda masuk pada direktri Makromedia Flash MX carilah file satup nya
  3. setelah beberapa detik akan muncul command : tekan next untuk melanjutkan penginstalan

  1. Selanjutnya anda akan masuk pada jendela License Agrement pilih saja “Yes” menandakan anda setuju dengan aturan-aturan atau (tata penggunaan ) dari macromedia Flash MX tersebut
  2. proses selanjutnya anda akan memasuki pada command Macromedia Flash MX Instalation dimana anda disuruh menyeleksi letak dari aplikasi Flash anda (anda bias tentukan sendiri atau anda mengikuti default dari flash MX tersebut : C\Program Files\Macromedia\Flash MX 2004 tekan next
  3. pada jendela Install Macromedia Flash Player anda disuruh untuk memilih komponen apa yang akan anda Install pada computer, centang saja semua dan lanjut dengan mengeklik next
  4. anda akan ditampilkan pada setting directory yang telah kita buat di o 5 lalu tekan next
  5. tunggu beberapa menit untuk proses penInstaan :
  6. anda akan dihadapkan pada jendela yang menyatakan bahwa proses pengIstalan telah selesai : lalu hilagkan saja centang pada Yesview the Redme file now

  1. pilih Finish, sehingga anda akan ditampilkan jendela sebagai berikut :

  1. buka lah Aplikasi Flash MX 2004, pada proses ini anda belum bias menggunakan software ini karena masih ada proses selanjutnya :
  2. anda akan dihadapkan pada Macromedia Flash MX Activition klik Continue
  3. akan muncul command yang meminta kita untuk memasukkan serial Number jangan kuatir, carilah serial Number pada master kita lalu masuk ke folder crack dan buka keygen disitu kita akan mendapat Serial Numbernya copy dan pastekan ke command Serial Number tersebut, akan muncul tanda centang yang menandakan serial Numbernya benar klik continue
  4. isikan data diri anda
  5. tekan register
  6. anda bias langsung menggunakan Flash MX 2004

  1. untuk pnjelasan ruang lingkup Flash MX 2004 akan saya berikan di artikel selanjutnya

SELAMAT MENCOBA

Jumat, 02 Januari 2009

INJEKSI SQL


  1. Pengertian


Injeksi SQL adalah sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain.


  1. Penyebab

    1. Karakter-karakter pelolos yang tidak disaring secara benar

Bentuk injeksi SQL ini terjadi ketika masukan pengguna tidak disaring dari karakter-karakter pelolos dan kemudian diteruskan ke dalam sebuah pernyataan SQL. Ini menimbulkan potensi untuk memanipulasi pernyataan-pernyataan yang dilakukan pada basis data oleh pengguna akhir aplikasi.

Baris kode berikut menggambarkan celah keamanan ini:

pernyataan := "SELECT * FROM pengguna WHERE nama = '" + namaPengguna + "';"

Jika variabel "namaPengguna" dirangkai sedemikian rupa oleh pengguna yang bermaksud buruk, pernyataan SQL tersebut bisa melakukan lebih daripada yang pengarangnya maksudkan. Sebagai contoh, mengeset variabel "namaPengguna" sebagai

a' or 't'='t

menjadikan pernyataan SQL ini oleh bahasa yang memuatnya:

SELECT * FROM pengguna WHERE nama = 'a' or 't'='t';

Jika kode ini akan digunakan dalam sebuah prosedur untuk melakukan otentikasi, maka contoh ini dapat dipakai untuk memaksakan pemilihan sebuah nama pengguna yang sah karena evaluasi 't'='t' akan selalu bernilai benar.

Secara teori, perintah SQL sah apapun bisa diinjeksi melalui metode ini, termasuk menjalankan banyak pernyataan. Nilai "namaPengguna" berikut ini pada pernyataan di atas akan menyebabkan dihapusnya tabel "pengguna" dan juga pengambilan semua data dari tabel "data":

a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%

Masukan ini menjadikan pernyataan akhir SQL sebagai berikut:

SELECT * FROM pengguna WHERE nama = 'a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%';

    1. Penanganan tipe yang tidak benar

Bentuk injeksi SQL ini terjadi ketika sebuah unsur masukan pengguna tidak bertipe kuat atau tidak diperiksa batasan-batasan tipenya. Ini dapat terjadi ketika sebuah unsur numerik akan digunakan dalam sebuah pernyataan SQL, tetapi pemrogram tidak melakukan pemeriksaan untuk memastikan bahwa masukan pengguna adalah numerik. Sebagai contoh:

pernyataan := "SELECT * FROM data WHERE id = " + variabel_a + ";"

Terlihat jelas dari pernyataan ini pengarang memaksudkan variabel_a menjadi sebuah nomor yang berhubungan dengan unsur "id". Namun begitu, jika pada kenyataannya itu adalah sebuah string, maka pengguna akhir dapat memanipulasi pernyataan tersebut sesukanya, dan karena itu mengabaikan kebutuhan akan karakter-karakter pelolos. Sebagai contoh, mengeset variabel_a sebagai

1;DROP TABLE pengguna

akan menghapus tabel "pengguna" dari basis data karena hasil akhir SQL-nya akan menjadi sebagai berikut:

SELECT * FROM data WHERE id = 1;DROP TABLE pengguna;

    1. Celah keamanan dalam server basis data

Terkadang celah-celah keamanan dapat berada dalam perangkat lunak server basis data itu sendiri, seperti yang terjadi pada fungsi-fungsi real_escape_chars() di server MySQL


  1. Penanganannya


Injeksi SQL dapat dengan mudah diatasi dalam kebanyakan bahasa pemrograman yang menargetkan aplikasi web atau menawarkan fungsi. Dalam DBI di Perl, metode DBI::quote meloloskan karakter-karakter khusus (anggaplah variabel $sql menyimpan referensi ke sebuah obyek DBI):

$kueri = $sql->prepare

(

"select * from pengguna where nama = "

.

$sql->quote($nama_pengguna)

);

Namun begitu, secara umum ini bukan jalan yang terbaik dalam menghadapi masalah tersebut. DBI mengijinkan penggunaan placeholder, yang memperbolehkan Anda untuk mengikat data ke sebuah pernyataan secara terpisah dari pendefinisian pernyataan SQL tersebut. Untuk sistem basis data yang tidak secara asli mendukung placeholder, DBI menirukannya dengan menggunakan fungsi DBI::quote secara otomatis pada nilai-nilai. Banyak sistem basis data yang mendukung pengikatan nilai secara terpisah melalui API mereka; DBI akan menggunakan dukungan placeholder asli tersebut dalam hal ini. Sebagai contoh:

$kueri = $sql->prepare("select * from pengguna where nama = ?");

$kueri->execute($nama_pengguna);

Keuntungannya adalah Anda tidak perlu mengingat untuk menggunakan DBI::quote kepada setiap nilai. Nilai-nilai akan diikat secara terpisah, atau dikutipsecara benar, tergantung pada dukungan yang ditawarkan oleh SMBD tertentu yang Anda gunakan. Anda kemudian terhindari dari masalah dasar injeksi SQL di mananilai-nilai diinterpretasi sebagai SQL.

Bagi sistem basis data yang mendukung placeholder secara asli, seringkali adakeuntungan kinerja yang nyata untuk menggunakan placeholder, karena basis data dapatmenyimpan cache dari sebuah perwakilan pernyataan yang terkompilasi danmenggunakannya secara berulang di antara pelaksanaan-pelaksanaan dengan nilai-nilaiikatan yang berbeda. Placeholder kadang-kadang juga disebut sebagai "variabelpengikat".

Dalam PHP, terdapat beberapa fungsi bawaan yang berbeda untuk digunakan padaSMBD-SMBD yang berbeda untuk meloloskan nilai-nilai yang cocok untuk diimbuhkandalam pernyataan-pernyataan SQL harafiah. Untuk MySQL, yang serupa dengan iniadalah fungsi bawaan mysql_real_escape_string:

$hasil_kueri = mysql_query

(

"select * from pengguna where nama = '"

.

mysql_real_escape_string($nama_pengguna)

.

"'"

);

Antarmuka asli untuk sebuah SMBD tertentu dapat juga menawarkan sebuahmetode untuk melakukan pengikatan placeholder secara terpisah, misalnya mysql_stmt_bind_param atau oci_bind_by_name. Selain itu, sebuah pustaka abstraksidapat digunakan untuk menirukan placeholder dalam cara yang mirip denganDBI dari Perl. Sebuah contoh dari beberapa pustaka yang ada ialah basis data ADOdb.

Dalam bahasa pemrograman Java, yang serupa adalah kelas PreparedStatement.

Daripada

Connection con = (peroleh koneksi)

Statement stmt = con.createStatement();

ResultSet rset = stmt.executeQuery("SELECT * FROM pengguna WHERE nama = '" + userName + "';");

gunakan yang berikut

Connection con = (peroleh koneksi)

PreparedStatement pstmt = con.prepareStatement("SELECT * FROM pengguna WHERE nama = ?");

pstmt.setString(1, namaPengguna);

ResultSet rset = pstmt.executeQuery();

Dalam bahasa pemrograman "C#" .NET atau Mono, yang serupa adalahobyek-obyek ADO.NET SqlCommand (untuk Microsoft SQL Server) atauOracleCommand (untuk server basis data Oracle). Contoh di bawah ini memperlihatkanbagaimana mencegah serangan injeksi menggunakan obyek SqlCommand. Kode untukpenyedia ADO.NET lainnya sangat mirip, tetapi dapat sedikit berbeda tergantung pada implementasi khusus yang dibuat oleh vendor penyedia tersebut.

Daripada

using( SqlConnection con = (peroleh koneksi) ) {

con.Open();

using( SqlCommand cmd = new SqlCommand("SELECT * FROM pengguna WHERE nama = '" + namaPengguna + "'", con) ) {

using( SqlDataReader rdr = cmd.ExecuteReader() ) {

...

}

}

}

gunakan yang berikut

using( SqlConnection con = (peroleh koneksi) ) {

con.Open();

using( SqlCommand cmd = new SqlCommand("SELECT * FROM users WHERE name = @namaPengguna", con) ) {


cmd.Parameters.AddWithValue("@namaPengguna", namaPengguna);


using( SqlDataReader rdr = cmd.ExecuteReader() ) {

...

}

}

}