Mengamankan robot.txt dan sitemap.xml Melalui Config Apache

Apakah robot.txt itu?

Robot.txt adalah sebuah file yang digunakan oleh sebuah aplikasi web, untuk memberikan instruksi pada Search Engine Bot, tentang apa saja yang boleh diindex dan apa saja yang tidak boleh diindex. Search Engine Bot, adalah browser milik search engine yang berguna untuk menelusuri semua link URL di seluruh dunia, untuk kemudian hasilnya dicatatkan pada database search engine. Contoh Search Engine Bot adalah : GoogleBot, YandexBot, YahooBot, Bing Bot, dan lain sebagainya.

Kadang untuk meningkatkan keamanan kita, maka pada file robot.txt akan dituliskan beberapa hal antara lain :

  1. Nama UserAgent (browser, bot)
  2. Allow/Disallow (ijin akses)
  3. Direktori yang dikenai Allow/Disallow
  4. Sitemap

Contoh file robot.txt adalah:

Screenshot from 2018-05-03 11-38-55

Gambar 1. Robot.txt

Pada robot.txt tersebut berisi direktori yang sebaiknya GoogleBot tidak melakukan pencarian di dalamnya. Maka Search Engine GoogleBot tidak akan melakukan indexing terhadap direktori tersebut. Membuat definisi direktori seperti itu biasanya digunakan untuk meningkatkan keamanan web agar direktori tersebut tidak dikenal dalam search engine.

Sayangnya dengan mata telanjang, dengan browser biasa, robot.txt tersebut dapat dibaca. Sehingga bagi beberapa pihak, hal itu justru merupakan informasi berharga, bahwa dalam aplikasi web tersebut terdapat direktori yang disebutkan. Oleh karena itu terkadang mendefinisi robot.txt menjadi boomerang bagi pemilik web.

 

Memproteksi robot.txt Dari UserAgent Organik pada Apache

UserAgent Organik antara lain adalah browser. Yaitu useragent yang dioperasikan langsung oleh manusia. Saat melakukan akses ke sebuah server, pada server akan selalu terdapat record log antara lain:

  1.  IP Address Pengakses ( REMOTE_ADDR )
  2. Tanggal dan waktu akses
  3. Method ( POST/GET )
  4. File yang diakses
  5. Status HTTP Response Code
  6. Useragent

 

Screenshot from 2018-05-03 12-04-53

Gambar 2. Log HTTPD/Apache

Karena server mengenali UserAgent pengakses, dan server disertai fitur-fitur untuk melakukan filtering, maka server dapat melakukan filtering terhadap UserAgent tertentu. Di dunia internet, UserAgent dari jenis-jenis Search Engine Bot, akan memiliki nama dengan unsur suku kata ‘bot’, seperti GoogleBot, Yandex Bot dan lain sebagainya.

Pada kasus kali ini, akan dicoba sebuah cara skenario sebagai berikut :

  • Robot.txt dibuat
  • Robot.txt didefinisikan melalui tags <Files>
  • Melakukan filtering UserAgent yang memiliki unsur suku kata ‘bot’
  • UserAgent yang bukan dalam filter tersebut, akan diarahkan sebagai 404 Not Found

 

Setelah config tersebut, restart / reload apache. 404 adalah HTTP Response Code untuk “Not Found”. Alias dianggap tidak ada. Mengapa tidak dikenai 403 Forbidden? Sebenarnya urusan aksi dari sebuah filtering adalah pilihan dari masing-masing pengelola server. Namun dalam hal ini saya pilih 404, karena kondisi Forbidden masih menunjukkan bahwa file tersebut ada di situ. Dengan konfigurasi itu, seluruh file robot.txt dalam server akan dikenai 404 Not Found oleh UserAgent non-bot.

 

Testing

Bagaimana cara memastikan bahwa konfigurasi tersebut berjalan? Seperti bahasan masa lalu kita tentang CURL, mainkan jurus KungFu CURL.

 

Seharusnya jawabannya adalah:

Lha? Terus bagaimana memastikan bahwa URL tersebut tetap dapat diproses oleh bot?? Sama. Jawabannya dengan silat CURL.

atau

Harusnya jawabannya adalah:

 

Perhatikan pada HTTP Response Code yang dimunculkan. 200 adalah OK. Sedangkan 404 adalah tidak ditemukan. Lha? Terus bagaimana kalau hackernya menggunakan CURL dengan UserAgent bot seperti contoh di atas? Jawabannya : semua yang kita lakukan, tidak dapat benar-benar memfilter, namun sifatnya mengurangi risiko akan situasi dan kondisi yang ada.

Lhah om? Bagaimana dengan sitemap?

Ya, Sitemap adalah file yang berisi sitemap web kita sendiri. Ini akan memudahkan Search Engine melakukan pemetaan indexing pada halaman Search Engine. Namun jika terambil oleh tangan jahil, akan menjadi informasi yang berharga untuk eksploitasi, atau penggunaan data sendiri. Untuk filtering sitemap, sama dengan robot.txt. Misalnya sitemap tersebut bernama file : sitemap.xml.gz. Maka filteringnya adalah sebagai berikut :

Nah… Selamat Mencoba

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">