Showing posts with label pemrograman. Show all posts
Showing posts with label pemrograman. Show all posts

Saturday, 20 February 2016

Cara Mencegah Akses SQL Injection di PHP

"SQL Injection" yaitu trik hacking dengan cara mengedit isi dari variabel get yang ada di url untuk melakukan penetrasi kedalam database.. teknik SQL Injection juga bsa di lakukan pada form login dengan membaypass atau melewati autentikasi login dengan syntak SQL..


Percaya atau tidak kalau mengamankan web itu lebih sulit daripada merusak tampilan atau merusak database dari web tersebut. Maraknya deface dan hacking yg dilakukan oleh beberapa orang yg dikarenakan kesalahan konfigurasi system atau kurangnya pengetahuan webmaster masih sering dilakukan.

1. Pencegahan SQL Injection, contoh sintak SQL Injection :

?or 1=1–

Penyerangan melalui teknik ini sama artinya dng penyerangan terhadap database. Untuk melakukan pencegahan terhadap SQL Injection ini, pertama seperti kita ketahui karakter ( ? ), (–), (NULL), (\x00), (\n), (\r), (?), (/), (/x1a) merupakan biang masalah dari SQL ini, tips nya yaitu escape semua special karakter tersebut untuk php/mysql:

mysql_real_escape_string. Atau dengan cara kedua yaitu filter semua karakter yang masuk dan hanya mengijinkan karakter ttt yg dpt di inputkan. Yg perlu diingat, Sql injection ini tidak hanya bisa masuk melalui inputan dari user tetapi juga bisa melalui URL dengan bantuan karakter ( ; ) yang arti dari karakter itu adalah ?baris dibelakang ; akan ikut di eksekusi?. Disarankan, abaikan semua karakter setelah alamat URL. Contoh script yang membatasi karakter yang bisa masukkan :

function validatepassword( input )

good_password_chars =

“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”

validatepassword = true

for i = 1 to len( input )

c = mid( input, i, 1 )

if ( InStr( good_password_chars, c ) = 0 ) then

validatepassword = false

exit function

end if

next

end function

2. Pencegahan XSS (Cross Side Scripting), contoh script XSS :
Pencurian cookie biasanya sering dilakukan melalui teknik ini. Dengan ditemukan kelemahan XSS ini maka user dapat menjalankan script melalui form, buku tamu atau URL. Walaupun perubahan yang bisa dilakukan hanya bersifat clien tetapi bila cookie dicuri lain soal…..! Jadi untuk mencegah XSS adalah dengan Konversi < dan > menjadi menjadi lt; dan gt; dan dengan diawali karakter & (itu berarti pengganti nilai < dan > dlm tag HTML) dan filter semua inputan dari user.

3. Pemasukkan Tag HTML.
Biasa cara ini kebanyakan dilakukan melalui buku tamu. Dengan cara ini seseorang dapat menambahkan tampilan sesuai dengan keinginan mereka. Dari beberapa pengalaman, biasanya para web master melakukan pencegahan ini dengan menambahkan karakter tertentu di awal karakter < atau >. Tapi fungsi untuk mencegah tag HTML sekarang sudah disediakan langsung oleh PHP jadi kita tinggal pakai saja (htmlspecialchars).

Contoh script :

function cleanup($value=”", $preserve=”", $tag=”") {

if (empty($preserve)) {

$value=strip_tags($value, $allowed_tags);

}

$value=htmlspecialchars($value);

return $value;

}

4. Batasi penggunaan Java Script dan jangan menggunakan java script untuk membuat sesuatu yang akan meyangkut hidup matinya web anda, karena java script bersifat client dan membuat akses yang akan sangat lambat. Disarankan gunakan aplikasi yang lain seperti PHP dan ASP karena sudah bersifat server.

5. Penyimpanan file database sebaiknya disimpan dlm directory private. Jangan pernah menyimpannya di directory public yang memungkinkan orang lain dapat mengaksesnya. Tapi biasanya di web hosting sudah menyediakan direktori khusus untuk database. Dalam keamanan database harus dilindungi dengan password. Koneksi sebaiknya di enkripsi dengan SSL. Data yang penting jangan disimpan secara langsung melainkan sebagai hash (md5) atau modifikasi dari md5 yaitu SHA-256 dan SHA-512 atau terenkripsi dengan bahasa pemrograman lain misalnya PHP.

6. Berhati hatilah memilih webhosting, itu sudah kami buktikan. Sehebat apapun web yang dibuat walaupun pengecekan password dibuat 2 kali dan di encrypt berapa kalipun kalau sudah server yang diserang kita tidak bisa berbuat apa apa.

Sumber :
KOMUNITAS PELAJAR ILMU KOMPUTER INDONESIA


1. Dengan cara menjadikan variabel get menjadi absolute integer


Penjelasan:
    Biasanya para hacker melakukan penetrasi terhadap variabel id yang kita letakkan pada url..
Contoh :

pada url http://blogger-afif/berita.php?id=1
    ketika akan membaca isi dari variabel id biasanya kita menggunakan syntak

Quote
id = $_GET['id'];
    jadi setiap isi dari id pada url akan disimpan pada variable $id..
 
    dan untuk query ke database :
    "SELECT * FROM tbl_berita WHERE id='$id'"

     nah melalui variabel $id ini lah para hacker menggunakan teknik SQL Injection, dengan   memasukkan perintah2 SQL yang dapat mengeksploitasi database..

    Solusinya:
    kita buat id menjadi absolute integer dengan mengubah sintaks pembacaan variabel get id menjadi:
    $id = abs((int)$_GET['id']);

    fungsi abs() digunakan untuk menghilangkan tipe data minus dan int digunakan untuk mengubah tipe data menjadi integer (hanya mengijinkan tipe data integer). jadi ketika variabel id pada url di rubah secara manual dan diisi dengan sintak SQL yang berupa string maka tetap dibaca 0.



2. Dengan menambahkan variabel get berisi enkripsi md5 yg divariasi pada url

Quote

 jika awal url adalah
     http://blogger-afif/berita.php?id=1

   maka kita akan menambahkan variabel yg berisi enkripsi dari id yg kita modifikasi dengan string acak menjadi
     http://blogger-afif/berita.php?id=1&token=9b0443e36affedbafe882a4bbb90eaec

nah sekilas terlihat mirip sma url2 facebook.. wahh kereeen :)

ok, saya jelaskan maksud dari variabel token diatas, jadi ketika awal kita memberikan link untuk next berita or previous berita atau berita lainnya.. pokok nya yang menampilkan berita lain dah.. kita isi
$token = md5(md5($id_berita).md5('kata acak'));
jadi href nya menjadi : berita.php?id=$id_berita&token=$token

sekarang pada halaman tampil berita kita tambahkan pengecekan apakah id berita diganti/diinject manual oleh user dengan cara :

$id_berita=$_GET['id_berita'];
$token=$_GET['token'];
$cek=md5(md5($id_berita).md5('kata acak'));
if($token==$cek){
   //syntak menampilkan berita disini
}
else{
   echo "SQL Injection detected..!!!!";
}


3. Khusus untuk form login, dengan melakukan enkripsi password atau merubah algoritma autentikasi login. 

Quote

  biasanya kita melakukan pengecekan ketika user login yaitu dengan melakukan query kedatabase:

$input_username=$_POST[username];
$input_password=$_POST[password];

$q="SELECT * FROM tbl_user where username='$input_username' and password='$input_passsword'";
$r=mysql_query($q);
$jml_row=mysql_num_rows($r);
if($jml_row > 0){
     echo "login sukses";
}
else{
     echo "login gagal";
}

nah algoritma autentikasi login seperti diatas sangat rentan terhadap penetrasi SQL Injection..
solusi pertama dengan melakukan enkripsi pada password yaitu dengan mengganti
skrip berikut :

$input_password=$_POST[password]; menjadi:
$input_password=md5(md5($_POST[password]).md5('karakter acak'));

tentunya yang berakibat dengn mengenkripsi semua password di database sesuai enkripsi diatas

(semoga ga pada pusing yah )

solusi kedua yaitu dengan merubah algoritma menjadi

$d=mysql_fetch_array($r);
if($jml_row >0 && ($d[password]==$input_password))            << di tambah pengecekan inputan password thd password di dtabase


  OK deh sekian dlu trik mengatasi SQL Injection.nya.. Dan Masih Banyak Lagi Cara untuk pengamanannya... 


Sekian untuk artikel mengenai cara mencegah akses SQL injection di PHP. Admin
Read more

Sunday, 31 January 2016

Perbedaan JavaScript dan Jquery

Halo bertemu lagi dengan saya. Untuk pembahasan kali ini kita akan membahasan tentang perbedaan JavaScript dan Jquery. Mungkin dikalangan para programmer khususnya Web Developer JavaScript dan Jquery sering digunakan untuk membuat website lebih hidup selain CSS. Nah, mungkin untuk orang awam sama-sama memiliki awalan J apakah masih ranah? Jawabanya iya, Jquery merupakan anak dari JavaScript. Jquery disini hanya sebagai library dari JavaScript. Lalu apa perbedaan JavaScript dan Jquery dalam penulisan codingnya?


Secara umum JavaScript dipergunakan untuk memanipulasi “Document Object Model” (DOM), yang meliputi elemen-elemen pada sebuah laman web. Jadi, sebuah bahasa pemrograman yang dirancang untuk penggunaan pada browser (peramban) web.

JavaScript dieksekusi pada client side (sisi pengguna = komputer pengguna): Sebuah server website mengirim JavaScript ke peramban milik pengguna, dan peramban tersebut menginterpretasikan dan menjalankan kodenya. Semua ini terjadi dalam sebuah sandbox, yang menjaga agar JavaScript tidak menyentuh internal sistem dan mencegah malicious code (kode jahat) menginfeksi komputer pengguna.

Contoh program JavaScript paling simpel adalah alert ("hello world!");, yang kemungkinan diletakkan pada sebuah laman HTML di dalam tag <script> untuk memerintahkan browser menginterpretasikannya sebagai JavaScript, misalnya: <script> alert("hello world!"); </script> Kode ini menampilkan sebuah munculan (pop up) kotak alert pada peramban web. Lebih mudah bila Anda melihat contoh berikut ini.


Hello JavaScript!
 

Fungsi JavaScript diatas ditulis seperti ini:

<button onclick="document.getElementById('demo').innerHTML = 'Hello JavaScript!'" type="button">
Klik Saya!</button>

JavaScript dapat mengubah gambar!
 
Klik gambar bola lampu untuk on/off (ubah gambar).

Kesimpulannya, Javascript adalah bahasa pemrograman yang dirancang untuk berjalan di lingkungan klien yang dikombinasikan dengan dokumen HTML. Javascript dijalankan dengan bantuan browser sehingga dapat melakukan interaksi dengan user, melakukan kontrol browser dan memanipulasi dokumen web atau materi web saat ditampilkan serta beberapa validasi data.

Sedangkan jQuery adalah sebuah komponen/librari/framework (kamus atau perpustakaan) yang dibuat dari JavaScript dengan tujuan memudahkan seorang programmer dalam menggunakan fungsi-fungsi yang lebih rumit. Dengan jquery, seorang programmer bisa lebih leluasa dan mudah melakukan kontrol, manipulasi, automasi halaman web. Oleh karena kemudahan tersebut jQuery memiliki semboyan "write less, do more" yang bisa kita artikan dengan sedikit menulis kode tapi dapat melakukan banyak hal.

Jquery dibangun dengan berorientasi objek sehingga akan lebih optimal dan memiliki kemampuan yang lebih luas untuk menciptakan serta memanipulasi halaman web. Karena berorientasi pada objek maka jQuery lebih berkaitan dengan tampilan halaman web.

Meskipun ada banyak library lain semacamnya, namun jQuery jauh lebih populer karena kemampuannya untuk menjalankan perintah pada peramban lama. jQuery berjalan pada browser bersamaan dengan JavaScript biasa. Ia terutama dipergunakan untuk animasi dan AJAX, yang cukup sulit untuk diprogramkan dengan vanilla JavaScript, namun bisa diketik dalam beberapa baris singkat dengan jQuery.

jQuery dimasukkan dalam sebuah laman web diantara tag <script> dan tag </script>; contohnya: <script src=".../ajax/libs/jquery/1.11.1/jquery.min.j"></script>.

Contoh panggilan jQuery, kotak kecil akan disembunyikan saat diklik:

Contoh jQuery:


Penulisan kode untuk fungsi jQuery di atas adalah:
<script>
    $("#box").click(function(){$("#box").slideUp()});
</script>

Mari kita lihat contoh lainnya. Bagaimana penulisan JavaScript dan jQuery untuk melakukan sebuah manipulasi background dokumen html berikut :

Javascript

<script language="javascript">
function changeBackground(color)
{
  document.body.style.background = color;
}
onload="changeBackground('red');"
</script>
Jquery

<script>
  $('body').css('background', '#ccc');
</script>
Keduanya sama-sama memerintahkan web browser untuk menampilkan background (latar belakang) "body" berwarna merah.

jQuery itu library-nya, JavaScript bahasanya
jQuery juga memiliki banyak sekali plugin yang memperluas fungsionalitasnya melalui berbagai metode. Untuk refrensi pada link dibawah:

*http://en.wikipedia.org/wiki/Scripting_language
*http://www.w3schools.com/js/js_intro.asp.

Sekian dulu untuk artikel mengenai perbedaan JavaScript dan Jquery. Admin
Read more

Pengunaan Meta Tags dan Kegunaannya Untuk Meningkatkan SEO Website Anda

Haloo ketemu lagi dengan saya. Pada artikel sebelumnya kita membahasan tentang pentingnya penggunaan HTTPS, Jika belum baca klik disini. Untuk artikel selanjutnya yaitu mengenai meta tag SEO dan element HTML.
Meta Tags atau Meta Elemen adalah elemen HTML yang digunakan untuk membentuk struktur meta data dari sebuah halaman website. Ini bisa berisi deskripsi halaman, kata kunci (keyword) , bahasa, panulis, pengaturan robot, dan lain sebagainya. Meta Tags ini memainkan peranan penting dalam SEO (Search Engine Optimization) sebuah website, khususnya untuk SEO on-page, jika anda benar dalam penggunaan meta tags ini dipastikan ada sudah berhasil meningkatkan 30% dari SEO website anda. Meta tags biasanya ditempatkan di header dari halaman website.
Berikut ini Meta Tags Yang Sering Ada Pada sebuah Website
  • Meta Title
  • Meta Description
  • Meta Keyword
  • Meta Language
  • Meta Robot
  • dll

Title Tags

Title tags tidak lain adalah judul halaman web anda, pada bagian ini anda menentukan judul website ataupun judul halaman, judul halaman ini sebaiknya tidak terlalu pendek namun juga tidak terlalu panjang, maksimal 66 karakter saja. Sebuah situs website yang baik tentunya memiliki title tags yang efektif pula, tidak perlu spamming dibagian ini. Title tags akan ditampilkan sebagai link utama ke website anda di hasil pencarian Search Engine dan juga akan ditampilkan sebagai judul yang muncul di browser.
<html>
<head>
 <title>Tutorial Website Indonesia | Wadah untuk pengembang web</title>
</head>
</html>
Penggunaan Title Tag

Meta Description

Description tag adalah tempat anda menjelaskan secara singkat tentang sebuah halaman. Deskripsi ini tidak boleh lebih dari 120 karakter. Tag ini juga akan ditampilkan dalam hasil pencarian di Search Engine, tepatnya berada di bawah Title Tag. Tag deskripsi sebaiknya tidak digunakan untuk menulis kata kunci, namun penjelasan tentang halaman website saja, namun bisa mengandung frasa kata kunci utama dan sebaiknya jangan sampai menuliskan frasa tersebut secara berulang.
<html>
<head>
 <title>Tutorial Website Indonesia | Wadah untuk pengembang web di Indonesia</title>
 <meta name="description" content="Website berisi resource dan artikel menarik untuk pengembang web indonesia" />
</head>
</html>
Penggunaan meta descriptions

Meta Keyword

Keyword (kata kunci) adalah kata-kata yang menargetkan halaman web. Keyword mewakili isi halaman web. Jadi ketika memilih kata kunci kita harus tahu bahwa kata kunci yang kita tulis tersebut harus relevan dengan konten halaman web nya, hal ini biasa dikenal dengan “Content Relevance”. Keyword biasanya ditempatkan dibawah tag description. Bedanya dengan description tags yaitu meta keyword bisa berisi lebih dari satu kata namun dipisahkan oleh tanda koma. Sebaiknya jangan menulis lebih dari 10 kata kunci.
<html>
<head>
 <title>Tutorial Website Indonesia | Wadah untuk pengembang web di Indonesia</title>
 <meta name="description" content="Website berisi resource dan artikel menarik untuk pengembang web indonesia" />
 <meta name="keywords" content="web development, resource, tips & tricks, article, freebies, seo" />
</head>
</html>
Penggunaan meta keyword

Meta Robot

Meta robot digunakan untuk mengatur izin dari robot milik search engine, mengatur disini yaitu menentukan apakah mereka boleh mengikuti perubahan yang ada di website kita atau tidak.
Sebaiknya untuk halaman depan website ini perlu di izinkan, namun untuk halaman administrator jangan biarkan search engine mengetahui nya.
Meta robot ini biasanya berisi
  • Index: Membolehkan robot search engine meng-index halaman website kita.
  • Follow: Membolehkan robot search engine mengikuti perkembangan/perubahan yang kita lakukan pada website.
  • NoIndex: Tidak memberi izin robot untuk mengindeks website.
  • NoFollow: Tidak membolehkan website untuk mengikuti perubahan yang terjadi pada website.
  • NOARCHIVE,NOODP,NOYDIR: Penjelasannya bisa anda baca disini.
<html>
<head>
 <title>Tutorial Website Indonesia | Wadah untuk pengembang web di Indonesia</title>
 <meta name="description" content="Website berisi resource dan artikel menarik untuk pengembang web indonesia" />
 <meta name="keywords" content="web development, resource, tips & tricks, article, freebies, seo" />
 <meta name="robot" content="noindex, nofollow">
</head>
</html>
Penggunaan Meta Robot

Meta Language

Meta ini digunakan untuk mendeskripsikan bahasa yang digunakan oleh website tersebut, ini juga untuk memudahkan search engine, jika seseorang mencari di google dan dia berasal dari Indonesia, maka website-website yang berbahasa Indonesia pasti akan di prioritaskan untuk muncul di hasil pencarian orang tersebut.
<html>
<head>
 <title>Tutorial Website Indonesia | Wadah untuk pengembang web di Indonesia</title>
 <meta name="description" content="Website berisi resource dan artikel menarik untuk pengembang web indonesia" />
 <meta name="keywords" content="web development, resource, tips & tricks, article, freebies, seo" />
 <meta name="robot" content="noindex, nofollow">
 <meta name="language" content="english">
</head>
</html>
Penggunaan Meta Language
Meta lainnya…
Beberapa meta telah kita bahas di atas, kira-kita itulah beberapa meta yang penting untuk anda ketahui dan perlu anda pasang di website anda. Tentunya masih banyak meta-meta lain untuk menunjang kemunculan website anda baik di sosial media maupun di search engine.
Ada banyak sekali meta tag yang bisa anda gunakan, untuk selangkapnya bisa mengunjungi website http://www.metatags.info
Sekian dulu untuk artikel mengenai meta tag SEO. Sampai ketemu lagi pada artikel berikutnya admin

Read more

Saturday, 30 January 2016

Cara Membuat String Random di PHP

Terkadang kita perlu untuk meng-generate random string (mengacak karakter) dengan menggunakan PHP, biasanya digunakan untuk memberi nama file, untuk membuat password, untuk membuat captcha, dan lain sebagainya.

Untuk mengacak string secara random kita bisa menggunakan potongan fungsi berikut ini.
<?php
function genRndString($length = 10, $chars = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
    if($length > 0)
    {
        $len_chars = (strlen($chars) - 1);
        $the_chars = $chars{rand(0, $len_chars)};
        for ($i = 1; $i < $length; $i = strlen($the_chars))
        {
            $r = $chars{rand(0, $len_chars)};
            if ($r != $the_chars{$i - 1}) $the_chars .=  $r;
        }

        return $the_chars;
    }
}

?>
Cara menggunakan nya cukup memanggil fungsi tersebut dengan cara dibawah ini
<?php
echo genRndString();
?>
Sekian trik singkat untuk menciptakan string random dengan menggunakan PHP
Read more