Sunday, February 26, 2017
Bagaimana Membuat Script PHP Untuk Mencegah Pengunduhan File Secara Langsung Direct Download
Bagaimana Membuat Script PHP Untuk Mencegah Pengunduhan File Secara Langsung Direct Download
Dalam artikel PHP kali ini, saya akan mencoba memaparkan bagaimana cara mencegah proses pengunduhan file secara langsung (direct download) menggunakan script PHP. Apa sih itu direct download? OK, penjelasannya adalah sebagai berikut. Misalkan Anda mengupload sebuah file berekstension ZIP ke server hosting, katakanlah nama filenya x.zip. Kemudian misalkan web site Anda adalah www.situsku.com, maka seorang pengunjung bisa langsung mengunduh file x tadi hanya dengan memanggil URL http://www.situsku.com/x.zip di browser. Nah, sekarang bagaimana caranya untuk mencegah seseorang mengunduh secara langsung ke file tersebut? dalam arti, orang tersebut hanya bisa mengunduh setelah dia membuka halaman web tertentu, kemudian dia mengklik link download yang ada di halaman tersebut. Jika dia ingin mencoba mengunduh langsung file nya dengan mengakses URL download nya di browser, maka dia tidak bisa melakukannya. Saya kira sudah paham ya maksud saya? 
Teknik ini akan bermanfaat untuk mencegah seorang pengunduh menggunakan software downloader seperti misalnya: Flashget atau Download Manager dsb, yang memungkinkan proses pengunduhan dilakukan secara multipart. Teknik ini juga akan bermanfaat bagi pemilik web site karena setiap pengunduh file mau tidak mau harus membuka halaman web tertentu dahulu sebelum mengunduhnya, sehingga web site akan selalu dikunjungi oleh pengunduh file.
Nah sekarang bagaimana teknik implementasinya? Idenya sebenarnya sederhana yaitu dengan memanfaatkan session. Ketika seseorang membuka sebuah halaman web tertentu yang berisi link download, maka sebuah SESSION akan diset. Kemudian kita buat script PHP untuk proses download nya. Di dalam script PHP yang kita buat ini, kita cek dahulu apakah SESSION telah diset sebelumnya? Jika SESSION telah diset, maka proses download akan berjalan. Namun, jika SESSION belum diset, maka download gagal. Pengunjung yang mencoba langsung mengunduh file dengan cara membuka URL downloadnya secara langsung maka SESSION tidak akan pernah diset, dan akibatnya dia tidak bisa melakukan pengunduhan.
OK demikian tadi idenya, sekarang saatnya scripting. Mula-mula kita buat halaman web untuk menempatkan link downloadnya. Saya buat yang simpel saja ya, seperti ini:
index.php
view sourceprint?
01.<?php02.// mulai session03.session_start();04.// set session dengan nama akses05.$_SESSION[akses] = true;06. 07.echo "<ul>";08.echo "<li><a href=download.php?id=1>File 1</a></li>"Go to link Download