Membuat cross domain proxy / web proxy sederhana dengan PHP

Bagi para programmer AJAX, mungkin pernah mengalami kondisi dimana kode anda tidak bisa mengakses sebuah URL diluar dari host webserver. Ini dikarenakan adanya security yang dinamai dengan same origin policy. Security ini berpengaruh kepada pemrograman berbasis browser seperti javascript. Dengan adanya security ini, javascript diijinkan untuk mengakses halaman web pada URL yang sama dengan host dari script tersebut tanpa adanya batasan, akan tetapi javascript tidak diijinkan untuk mengakses halaman web pada URL yang lain. 

Berikut ini ilustrasi mengenai same origin policy :

same origin policy

 

Dengan security ini hak akses javascript hanya dibatasi untuk mendapatkan halaman web dari hostnya sendiri. Namun dengan adanya security ini,  membatasi hak akses javascript di dalam menggunakan webservice yang sekarang banyak di internet dan dapat diakses dengan gratis.

Untuk mengatasi permasalah tadi sebenarnya sangat mudah. Yaitu dengan menggunakan cross domain proxy / web proxy. Dengan adanya cross domain proxy / web proxy, URL yang diakses oleh browser akan sama dengan URL asal javascript. Lalu cross domain proxy / web proxy akan melakukan request ke webservice yang diinginkan dan mengembalikan hasil request tersebut ke browser. Sehingga pada akhirnya webservice dapat diakses oleh browser.

Berikut ini ilustrasi akses dengan cross domain proxy / web proxy :

cross domain proxy

Pembuatan cross domain proxy / web proxy sangat mudah, kita dapat membuatnya sendiri. Yang jelas inti dari cross domain proxy / web proxy adalah dapat mengakses url web yang kita inginkan lalu menampilkan hasil dari url web tersebut apa adanya tanpa mengubah sama sekali isi dari hasil tersebut.

PHP merupakan salah satu bahasa pemrograman web yang bisa kita jadikan cross domain proxy / web proxy. Syaratnya php harus dapat mendukung CURL.

CURL merupakan Command Line Tool yang dapat digunakan untuk mentranfer file dengan menggunakan sintaks URL. Protokol yang dapat didukung oleh curl banyak sekali seperti FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS dan FILE.

Yang paling penting CURL merupakan Open Source Software (OSS). Dengan menggunakan ekstension CURL (php_curl), php dapat mengakses URL web dan mengambil hasilnya untuk dapat di proses atau ditampilkan ke browser.  Manual mengenai penggunaan php curl dapat dilihat pada website manual php.

Pembuatan cross domain proxy / web proxy dengan menggunakan php sangat mudah. Hanya mengetikkan beberapa baris pada sebuah file php. Disini saya membuat sebuah file bernama proxy.php yang dijadikan sebagai cross domain proxy / web proxy. Isi filenya sebagai berikut :

proxy.php
proxy.php

File proxy.php tersebut akan menerima sebuah input variabel bernama url (case sensitive), dimana url tersebut isinya adalah alamat URL dari web yang akan diakses diluar dari webserver. Selanjutnya simpan file proxy.php tersebut ke dalam direktori document root dari webserver agar bisa diakses oleh browser. Misalnya kita mau mengakses URL http://nanaz.net dengan menggunakan proxy kita tinggal mengetikkan http://localhost/proxy.php?url=http://nanaz.net.

koneksi dengan menggunakan cross domain proxy

Dengan menggunakan cross domain proxy / web proxy alamat yang diakses akan tetap sesuai dengan alamat dari webserver yang kita gunakan walaupun hasilnya merupakan dari web lain. Dengan cara ini pemrogramman berbasis browser akan dapat dilakukan karena tidak melanggar same origin policy.

Komentar untuk blog ini :

captcha

03 Juli 2010

tolong penjelasan lebih lanjut, kirimkan keterangannya dan dimana cara menyimpan file tersebut apakah mengunakan notepad atau word.....?

03 Juli 2010

tolong penjelasan lebih lanjut, kirimkan keterangannya dan dimana cara menyimpan file tersebut apakah mengunakan notepad atau word.....? mail@ jaka_dablek@yahoo.com