[help] melindungi website dengan htaccess


Status
Not open for further replies.

Fadli

Poster 2.0
teman-teman, saya tanya lagi ya disini.... :D
saya sudah coba cari via google, tapi belum dapat solusi yang tepat. beberapa hal yang ingin saya atasi adalah:

1. Melarang User Mengakses Folder
Jika saya punya folder:
http://domain.ext/images/
http://domain.ext/css/
http://domain.ext/scripts/
maka saya tidak ingin user dapat mengakses folder2 dan mengetahui isi/file yang ada di dalam folder tersebut dan ketika mereka coba mengaksesnya, maka user akan diredirect ke halaman seperti "ERROR: You can't access this page"

Adapun selama ini cara lama yang saya lakukan adalah dengan menempatkan file index.php yang berisi meta-refresh di setiap folder. Sayangnya, kalau saya punya banyak folder di dalam website, rasanya ga efisien kalau harus copy file index.php di setiap folder? Bisakah hal itu dilakukan cukup sekali saja melalui .htaccess?


2. Menghapus Extensi .php
Saya ingin agar menu-menu dari situs PHP Statis saya bisa diakses tanpa harus mengetikkan halaman seperti ini:
http://domain.ext/about.php
http://domain.ext/gallery.php
http://domain.ext/contact.php
tapi cukup melalui
http://domain.ext/about
http://domain.ext/gallery
http://domain.ext/contact

secara manual saya sudah coba membuat menu link seperti ini di dalam header.php:
PHP:
<ul>
     <li><a href="http://localhost/tessite.com/about">About</a></li>
     <li><a href="http://localhost/tessite.com/gallery">Gallery</a></li>
     <li><a href="http://localhost/tessite.com/contact">Contact</a></li>
</ul>
untuk mengakses file about.php, gallery.php, contact.php tanpa penambahan coding apapun. dan memang berhasil. tapi yang saya khawatirkan cara ini tidak berlaku untuk semua server, karena mungkin pada server yang tidak mendukung, maka mereka akan menampilkan halaman error karena tidak dapat menemukan halaman /about /gallery /contact dst...

apa juga bisa ini diterapkan melalui .htaccess yg berlaku untuk semua server?



3. Melarang Web Grabber
Web grabber semacam HTTrack, Offline Downloader, Web Offliine dan semacamnya seringkali membuat bandwidth website cepat anjlok. Beberapa kali saya temui ketika menggunakan HTTrack untuk website tertentu, maka saya tidak berhasil melakukan grabbing. sepertinya sih diatur via robots.txt tapi saya ga tau apa isi dari robots.txt itu yang membuat HTTrack tidak berdaya.

jadi, apakah bisa juga hal ini dilakukan melalui .htaccess sekaligus? atau kalau hanya bisa dilakukan via robots.txt apa sih yang harus diisikan pada file itu? tapi cara ini juga harus bisa berlaku global untuk semua grabber, bukan hanya untuk HTTrack ya...


terima kasih banyak sekali lagi atas bantuannya :D
 

perdhanahost

Hosting Guru
teman-teman, saya tanya lagi ya disini.... :D
saya sudah coba cari via google, tapi belum dapat solusi yang tepat. beberapa hal yang ingin saya atasi adalah:

1. Melarang User Mengakses Folder
Jika saya punya folder:
http://domain.ext/images/
http://domain.ext/css/
http://domain.ext/scripts/
maka saya tidak ingin user dapat mengakses folder2 dan mengetahui isi/file yang ada di dalam folder tersebut dan ketika mereka coba mengaksesnya, maka user akan diredirect ke halaman seperti "ERROR: You can't access this page"

Adapun selama ini cara lama yang saya lakukan adalah dengan menempatkan file index.php yang berisi meta-refresh di setiap folder. Sayangnya, kalau saya punya banyak folder di dalam website, rasanya ga efisien kalau harus copy file index.php di setiap folder? Bisakah hal itu dilakukan cukup sekali saja melalui .htaccess?

Ini mudah. Ganti saja ijin akses foldernya. Tapi ini hanya berlaku jika folder itu bukan milik user yang menjalankan daemon apache.

Cara yang mas Fadli jalankan itu sebetulnya yang paling efektif walaupun tidak terlalu efisien. Cara itu simple. Cukup masukkan file index.html kosong ke tiap folder yang tidak boleh dilihat isinya oleh visitor.

2. Menghapus Extensi .php
Saya ingin agar menu-menu dari situs PHP Statis saya bisa diakses tanpa harus mengetikkan halaman seperti ini:
http://domain.ext/about.php
http://domain.ext/gallery.php
http://domain.ext/contact.php
tapi cukup melalui
http://domain.ext/about
http://domain.ext/gallery
http://domain.ext/contact

secara manual saya sudah coba membuat menu link seperti ini di dalam header.php:
PHP:
<ul>
     <li><a href="http://localhost/tessite.com/about">About</a></li>
     <li><a href="http://localhost/tessite.com/gallery">Gallery</a></li>
     <li><a href="http://localhost/tessite.com/contact">Contact</a></li>
</ul>
untuk mengakses file about.php, gallery.php, contact.php tanpa penambahan coding apapun. dan memang berhasil. tapi yang saya khawatirkan cara ini tidak berlaku untuk semua server, karena mungkin pada server yang tidak mendukung, maka mereka akan menampilkan halaman error karena tidak dapat menemukan halaman /about /gallery /contact dst...

Silakan dibaca di:
http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/
http://roshanbh.com.np/2008/02/hide-php-url-rewriting-htaccess.html


apa juga bisa ini diterapkan melalui .htaccess yg berlaku untuk semua server?

Yang ini, lebih baik dicoba sendiri. Coba upload file .htaccess mas Fadli sendiri ke server. Lihat reaksinya. Semua apache di Unix/Linux support .htaccess walaupun belum tentu pengelola server mengijinkan untuk file itu digunakan.

Oleh karena itu, cara paling bagus untuk mengetahui diijinkannya penggunaan file itu atau tidak adalah mencoba langsung ke server.

3. Melarang Web Grabber
Web grabber semacam HTTrack, Offline Downloader, Web Offliine dan semacamnya seringkali membuat bandwidth website cepat anjlok. Beberapa kali saya temui ketika menggunakan HTTrack untuk website tertentu, maka saya tidak berhasil melakukan grabbing. sepertinya sih diatur via robots.txt tapi saya ga tau apa isi dari robots.txt itu yang membuat HTTrack tidak berdaya.

jadi, apakah bisa juga hal ini dilakukan melalui .htaccess sekaligus? atau kalau hanya bisa dilakukan via robots.txt apa sih yang harus diisikan pada file itu? tapi cara ini juga harus bisa berlaku global untuk semua grabber, bukan hanya untuk HTTrack ya...

terima kasih banyak sekali lagi atas bantuannya :D

Ini bisa menggunakan file robots.txt.

Silakan baca halaman2 berikut ini:
http://www.robotstxt.org/robotstxt.html
http://en.wikipedia.org/wiki/Robots_exclusion_standard

Semoga membantu :)
 

jaapns

Hosting Guru
Verified Provider
Sumbang ilmu :

Untuk melakukan banyak hal tersebut cukup lakukan hal ini :

Untuk menyembunyikan folder2 supaya tidak rawan hack itu silahkan tambahkan string berikut di .htaccess :
Options -Indexes
kemudian save.

Untuk mencegah folder tersebut di akses oleh index google bot buatlah file robot.txt
dengan isi berikut :
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-content/
Disallow: /wp-admin/
Disallow: /wp-includes/

Itu yang selama ini saya lakukan, silahkan mencoba, bila bermanfaat silahkan di bagi ilmunya dengan yang lain.
 

Fadli

Poster 2.0
Ini mudah. Ganti saja ijin akses foldernya. Tapi ini hanya berlaku jika folder itu bukan milik user yang menjalankan daemon apache.

Cara yang mas Fadli jalankan itu sebetulnya yang paling efektif walaupun tidak terlalu efisien. Cara itu simple. Cukup masukkan file index.html kosong ke tiap folder yang tidak boleh dilihat isinya oleh visitor.



Silakan dibaca di:
http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/
http://roshanbh.com.np/2008/02/hide-php-url-rewriting-htaccess.html
sip. saya buat seperti ini:
file .htaccess
PHP:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

dan di header.php saya buat linknya:
PHP:
<ol>
     <li><a href="http://localhost/tessite.com/">Home</a></li>
     <li><a href="http://localhost/tessite.com/about/">About</a></li>
     <li><a href="http://localhost/tessite.com/contact/">Contact</a></li>
</ol>

untuk sementara ini berhasil. tapi kalau dirasa 'logika' script diatas masih ada yg salah, tlg kasih tau saya ya... :D

Yang ini, lebih baik dicoba sendiri. Coba upload file .htaccess mas Fadli sendiri ke server. Lihat reaksinya. Semua apache di Unix/Linux support .htaccess walaupun belum tentu pengelola server mengijinkan untuk file itu digunakan.

Oleh karena itu, cara paling bagus untuk mengetahui diijinkannya penggunaan file itu atau tidak adalah mencoba langsung ke server.
oooo begitu... oke2... :D



Ini bisa menggunakan file robots.txt.

Silakan baca halaman2 berikut ini:
http://www.robotstxt.org/robotstxt.html
http://en.wikipedia.org/wiki/Robots_exclusion_standard

Semoga membantu :)
saya bikin seperti ini:
file robots.txt
PHP:
User-agent: *
Disallow: /cgi-bin/
Disallow: /css/
Disallow: /images/
Disallow: /scripts/
dan tes dari program2 terbaru yang ada di daftar http://freeware.intrastar.net/offline.htm
beberapa berhasil ditolak, tapi beberapa lainnya masih bisa lolos. tapi untuk sementara cukup puas lah hehehe...

makasih banyak ya mas untuk ilmunya!
 

Fadli

Poster 2.0
Sumbang ilmu :

Untuk melakukan banyak hal tersebut cukup lakukan hal ini :

Untuk menyembunyikan folder2 supaya tidak rawan hack itu silahkan tambahkan string berikut di .htaccess :
Options -Indexes
kemudian save.
keren...! folder2 didalamnya kalau diakses langsung ke halaman 403 Forbidden. tapi pertanyaan selanjutnya kalau mau bikin halaman custom dari 403 Forbidden itu gmn ya caranya? biar bisa ditampilkan halaman yang lebih bagus gitu? :D

Untuk mencegah folder tersebut di akses oleh index google bot buatlah file robot.txt
dengan isi berikut :
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-content/
Disallow: /wp-admin/
Disallow: /wp-includes/
nah karena google bot dilarang akses ke folder itu, terus kalau misalnya saya taruh script iklan semacam google adsense di dalam salah satu folder tersebut, itu nanti ada efeknya ga ya? misalnya ga dibayar atau malahan dibanned akun saya?


Itu yang selama ini saya lakukan, silahkan mencoba, bila bermanfaat silahkan di bagi ilmunya dengan yang lain.
siap! semoga juga review dari yang saya kerjakan dan ditampilkan disini hasilnya bisa jadi bermanfaat juga buat user2 yg lain kalau punya permasalah serupa.


btw, sepi banget sih ini board?? atau jangan2 cuma saya aja kali ya yg masih cupu? :D
 

perdhanahost

Hosting Guru
beberapa berhasil ditolak, tapi beberapa lainnya masih bisa lolos. tapi untuk sementara cukup puas lah hehehe...

Yang lolos itu bisa jadi karena program tersebut tidak menghiraukan file robots.txt. Karena file tersebut bukan untuk benar2 melakukan blok terhadap client2 http. Itu cuma satu metode "perjanjian" saja. Secara standar seharusnya para pembuat/pemrogram client http memperdulikan file itu. Tapi boleh2 saja mereka tidak memperdulikan file itu.

Nah, untuk melakukan blok pada client2 yang tidak menghiraukan file robots.txt itu, paling ampuh yang menggunakan response 403 forbidden (dengan .htaccess) atau dengan mengganti ijin akses folder bersangkutan.
 

perdhanahost

Hosting Guru
keren...! folder2 didalamnya kalau diakses langsung ke halaman 403 Forbidden. tapi pertanyaan selanjutnya kalau mau bikin halaman custom dari 403 Forbidden itu gmn ya caranya? biar bisa ditampilkan halaman yang lebih bagus gitu? :D

Halaman ini mungkin bisa membantu.. http://www.codestyle.org/sitemanager/apache/errors-403.shtml

btw, sepi banget sih ini board?? atau jangan2 cuma saya aja kali ya yg masih cupu? :D

Ngga' juga mas.. jarang ada yang berani memulai dan berbagi kayak mas Fadli. Semoga setelah mas Fadli akan banyak temen2 lain yang akan ikutan nimbrung di sini. :)
 

Fadli

Poster 2.0
wah...luar biasa!

saya bisa mengontrol error page pake:
PHP:
ErrorDocument 403 /404.php
ErrorDocument 404 /404.php

tadinya sih mau dibuat di dalam folder jadinya kodenya harusnya:
PHP:
ErrorDocument 403 /error-page/404.php
ErrorDocument 404 /error-page/404.php

tapi bentrok sama:
PHP:
Options -Indexes
hehehe :D



Ngga' juga mas.. jarang ada yang berani memulai dan berbagi kayak mas Fadli. Semoga setelah mas Fadli akan banyak temen2 lain yang akan ikutan nimbrung di sini. :)
waduh, jadi malu saya nih... saya disini cuma bisa banyak nanya, ga bisa bantuin jawab apa2... hehehe...
 

jaapns

Hosting Guru
Verified Provider
Originally Posted by jaapns
Untuk mencegah folder tersebut di akses oleh index google bot buatlah file robot.txt
dengan isi berikut :
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-content/
Disallow: /wp-admin/
Disallow: /wp-includes/
nah karena google bot dilarang akses ke folder itu, terus kalau misalnya saya taruh script iklan semacam google adsense di dalam salah satu folder tersebut, itu nanti ada efeknya ga ya? misalnya ga dibayar atau malahan dibanned akun saya?

tidak ada masalah, ngejos aja.... :)
 
Status
Not open for further replies.

Top