Cara me-Redirect wp-login.php

Tulisan ini membahas cara me-redirect wp-login.php berdasarkan IP ADDRESS, atau dengan katalain wp-login hanya bisa diakses berdasarkan IP yang sudah kita tentukan

Sekuat apapun sistem itu, selalu ada celah untuk melakukan penetrasi. Unknown

Tulisan ini membahas cara me-redirect wp-login.php berdasarkan IP ADDRESS, atau dengan katalain wp-login hanya bisa diakses berdasarkan IP yang sudah kita tentukan

Last Modif at July 9th, 2011

NOT RECOMEND
NOT RECOMEND
Setahun yang lalu saya pernah menulis http://www.indaam.net/2010/05/cara-mengganti-halaman-log-in-wordpress/–cara mengganti halaman login wordpress’.
sayangnya tulisan terdahulu itu ‘SANGAT TIDAK DIREKOMENDASIKAN’, nah, bagaimana jika kita mencoba alternatif lain?
Ok, Nantinya, tulisan ini akan membahas– cara ‘menyembunyikan’ wp-login.php berdasarkan IP, jadi hanya ip yang sudah kita tentukan saja yang bisa mengakses wp-login.php ini, caranya?

Kenapa harus menyembunyikan wp-login.php?

Alasan utamanya untuk antisipasi saja, kita kan tahu kalo url login default CMS wordpress adalah domain/wp-login.php dan, siapapun bisa mengakses halaman login ini. Nah, karena wp-login.php itu bisa diakses oleh siapa saja, jadi ada kemungkinan untuk melakukan penetration, walaupun kemungkinan sangat kecil ‘kecil sangat malah’.

Seberapa penting halaman wp-login.php?

Sepengetahuan saya, jarang banget defacer memanfaatkan wp-login.php untuk nge-deface web tertentu, gila aja kalo mau berpusing-pusing neror password si admin. Lah, terus kanapa harus disembunyikan? +1 :)

Ada satu keuntungan menggunakan teknik ini, misal pass dan username kita udah didapat, kan tetap harus login, jadi kalo halaman loginya ngga ditemukan ‘kan sama saja boong, lain hal jika si defacer ‘Misal dengan SQLi’ langsung me-Drop semua table database.

Untuk info lebih lanjut, coba gabung ke forum hacker ‘banyak kok kawan-kawan yang bagi informasi’ disana. Jangan takut, hacker itu ngga jahat kok, sesekali berdiskusi dengan mereka asik_loh, saya jamin pengetahuan sobat tentang per-hackingan dan security pasti bertambah ‘yang penting kalo sudah merasa jago jangan disalah gunakan saja’.

Sistem login wordpress

Seperti yang sudah saya sampaikan sebelumnya, url default halaman login wordpress adalah domain/wp-login.php dan sistem kerjanya kira-kira seperti ini :
Di wp-login.php ada dua form dengan dua input-an, yang pertama input[type=”text”] dan yang kedua input[type=”password”], ketika kita memasukan username dan password, string tadi akan dikirim ke database lalu diperiksa kebenaranya, jika keduanya(user dan pass) benar, maka akan di redirect ke wp-admin, setelah masuk di wp-admin, kitapun bebas mau ngapain.

Cara menyembunyikan wp-login berdasarkan IP

perlu dipahami, IP setiap perangkat itu sangat unik alias pasti beda-beda #lain hal IP PUBLIC. Berikut step by stepnya
Step 1 : Cari tahu dulu IP Address komputer sobat, caranya?
mmm, caranya banyak banget salah satunya, coba login dulu di dashboard blog WP sobat, trus disidebar kiri klik COMMENTS
setelah itu, coba lihat daftar komentar yang masuk, disitu ada nama user beserta emailnya, dibawahnya adalah ip si pemberi komentar. Jadi untuk mengetaui IP Address sobat, lihat saja komentar sobat sendiri.

kalo ngga belum tahu
pake cara ini
Untuk yang pake wampserver, appserver [active kan dulu]
lalu, masuk ke C:\wamp\www\
di folder www, buat file baru dengan nama dan ekstensi ipku.php
lalu isi ipku.php dangn script ini


<?php
echo $_SERVER['REMOTE_ADDR'];
?>

Buka browser kesayangan sobat lalu di address bar masukan ini http://localhost/ipku.php > Enter

Kalo IP-nya masih belum tahu juga
silakan kunjungi situs ini

  • http://www.whatmyip.com
  • http://www.whatismyipaddress.com
  • http://www.ip-address.com
  • http://myip.dk

Disitu jelas terpampang IP ADDRESS sobat

kalo masih belum tahu, dibagian atas ada tombol x dan [X] silakan di klik.

step 2 : simpan IP ADDRESS sobat > paste ke Notepad atau apalah

step 3 : praktek
Karena IP-nya sudah didapat saatnya kita praktek, berikut :
cari lalu edit wp-login.php > terserah mau lewat CPANEL, FTP atau apa yg penting bisa diedit
setelah itu copy script php berikut lalu paste tepat dibawah require( dirname(__FILE__) . '/wp-load.php' ); atau pada line 13


/*
Login Dengan IP
*/
$ipku = '/* ganti dengan ip sobat*/';
if( $_SERVER['REMOTE_ADDR'] != $ipku){
wp_redirect( home_url()); //exit;}
else{
echo 'bisa login, ipku ';
echo $ipku;}
/*
END Login Dengan IP
*/

Penting!
perhatikan $ipku = '/* ganti dengan ip sobat*/';
text yang berwarna merah itu harus diganti dengan IP sobat, misal
$ipku = '123.0.111.222';

OIa, kenapa harus diletakkan dibawah require( dirname(__FILE__) . '/wp-load.php' );? karena nantinya kita menggunakan fungsi wp_redirect(). Kalo scriptnya diletakkan di atas require( dirname(__FILE__) . '/wp-load.php' ); maka fungsi wp_redirect() akan error karena belum dibuat atau ngga ada, jadi disini fungsi require( dirname(__FILE__) . '/wp-load.php' ); ialah meload semua fungsi WP. Berikut

keterangan script yang ditambahkan di wp-login.php

  • line 1 sampai 3 adalah komentar
  • line 4, variable $ipku sama dengan IP ADDRESS SOBAT
  • line 5, disini kita melakukan pengecekan dengan if dan kondisinya ialah IP ADDRESS ‘TIDAK SAMA DENGAN’ IP SOBAT, dan pada
  • line 6, adalah statement yang di jalankan jika kondisinya benar, bingung? ngga kan?
  • line 7, jika kondisinya salah, maka
  • line 8 dan 9 adalah statement yang akan dijalankan
  • line 11 sampai 13 adalah komentar
kalo diartikan dalam bahasa manusia kira-kira seperti ini

Jika IP ADDRESS tidak sama dengan IPKU maka wp_redirect( home_url()); yang berfungsi untuk me-redirect ke halaman home akan dijalankan, atau sama dengan jika bukan IPKU akan dialihkan ke halaman home, simple kan?

Intinya, dengan script tadi ‘wp-login.php’ hanya bisa diakses dengan IP yang sudah sobat tentukan yaitu IP ADDRESS prangkat yang sobat pakai sekarang Dan jika bukan IP sobat maka akan dialihkan ke halaman ‘home’ blog sobat

sedikit tambahan
  • $ digunakan untuk membuat variable
  • Operator = adalah misal $a = 4, maka variable a sama dengan 4
  • $_SERVER['REMOTE_ADDR'] adalah IP ADDRESS perangkat yang digunakan
  • wp_redirect() berfungsi untuk nge-redirect sesuai dengan yang kita tentukan
  • home_url() outputnya adalah halaman utama blog wp kita /* sejak wordpress versi 3.0 */
  • Operator != dibaca tidak sama dengan
  • if(/*kondisi*/){/*statement yang dijalankan jika kondisi bernilai true*/}
  • else{statement yang dijalankan jika kondisi if(/* disini */) /*bernilai false*/}
  • echo berfungsi untuk menampilkan

Cara untuk login di dua IP yang berbeda

Dengan script diatas, wp-login.php hanya bisa diakses dengan satu IP saja, mungkin akan ribet jika sobat ingin login dengan komputer yang berbeda, bagaimana jika kita menambahkan satu ip lagi yang bisa digunakan untuk mengakses wp-login.php? Untuk scriptnya silakan gunakan ini *dengan catatan, script pertama tadi harus dihapus dulu*


/*
Login Dengan dua IP
*/
$ip1 = '127.0.0.1';
$ip2 = '64.225.180.219';
$ipku = $ip1 or $ip2;
if( $_SERVER['REMOTE_ADDR'] != $ipku){
wp_redirect( home_url()); exit;
}
else{
echo 'bisa login, ipku ';
echo $ipku;
}
/*
END Login Dengan dua IP
*/

Pada script yang kedua ini variable ipku memili dua nilai yaitu nilai pada $ip1 dan $ip2, disini kita menggunakan OR dimana or ini adalah Operator logika yang artinya adalah “true jika $ip1 ATAU $ip2 true”.


NOTE* Saya menggunakan script yang kedua, IP pertama saya sesuai dengan IP laptop saya, dan IP yang kedua adalah IP Opera mini 5, Anehnya ‘saya tidak bisa mengakses wp-login.php’ dengan Opera Mini saya? kemungkinanya
* apa karena IP server Opera yang berbeda dengan Opera Mini yang saya gunakan? atau
* apakah logika pada scriptnya salah? kalo pakai AND, && kan ngga mungkin karena IP1 dan IP2 harus true, kan mustahil satu browser memiliki dua IP yang berbeda? Jadi gimana nih? or, xor atau || ???
/* Buat master yang mampir HELP yah!! */

Kalo mau

Script diatas berfungsi me-redirect wp-login.php ke homepage, sobat juga bisa me-redirect ke web lain. jika mau, silakan redirect ke page yang sudah disusupi virus(cari di google), atau redirect ke page yang bikin browser kalang kabut/hank(juga ada di google). Saran nubi, sabaiknya ngga usah, kan kasihan kalo misal teman sobat sendiri yang (hanya)iseng cek halaman loginnya

Apakah hanya IP

Kasus diatas, merediret wp-login.php jika tidak sesuai dengan IP kita, asiknya kita juga bisa meredirect, misal berdasarkan Jaringan, Browser, Bahasa, Provider, Time dsb.
contoh ‘di wp-login indaam.net saya tambahkan bahasa yang saya tentukan sendiri';, jadi kalo ip dan bahasanya salah, akan diredirect ke home indaam.net, caranya? silakan ikuti link referensi dibawah ‘cluenya sama’.

?????

Sebenarnya kalo hanya berdasarkan IP saja, seseorang tetap bisa mengakses halaman login kita. Tapi kalo aku share disini ‘sama aja bo’ong kan?’ :)

Opini

Dengan menggunakan ini setidaknya sistem keamanan blog sobat naik satu level, ya walaupun selalu ada kemungkinan untuk menemukan celah suatu sistem, tapikan setidaknya ‘kita sudah berusaha’, kalaupu kena deface, ya itu sudah resiko jadi admin web, situs SONY yang kaya raya gituh aja bisa dibobol, apalagi web web nubi.

Saran

Karena yang kita kelolah hanya sebuah blog, dan intisari dari sebuah blog adalah tulisan, jadi usahakan selalu BACKUP…BACKUP…BACKUP…BACKUP…BACKUP…BACKUP…BACKUP…BACKUP…dan…BACKUP…

Tambahan

Karena script diatas menggunakan php, jadi ‘juga bisa diimplementasikan untuk semua CSM yang berbasis PHP.

Salah persepsi tentang Hacker

Awal kenal interntet, saya pikir semua yang berhubungan dengan Hacker itu adalah hal-hal Negative, setelah saya telaah labih dalam ternyata malah sebaliknya. Dan jika sobat katakan Hacker itu jahat, berarti Linus Torvalds? Jadi sekali lagi cari tahu dulu/gabung di forum lalu mem-vonis.

Well, sekian tulisan dari nubi, Semoga tulisan ini bermanfaat. Jika ada kesalahan mohon dikoreksi
Referensi

http://php.net/manual/en/reserved.variables.server.php

Indam

A geek, frontend developer. Like you, coding & experiment.
#web #design #ui #ux #standard #dreamer
#welding #interisti #beer #coffee

19 thoughts on “Cara me-Redirect wp-login.php”

  1. JhezeR says:

    sayangnya utk yg IP dinamis gak bisa menggunakan trik diatas.
    oia, dg htaccess juga bisa kok.

  2. indam says:

    Jhezer,
    Ia.
    Ia, lewat htaccess juga bisa. Sayangnya pengetahuan saya tentang htaccess masih minim :)

  3. Alwi says:

    Idem dg Kang Jhezer, kalau pas lagi bepergian ke luar kota (gak bawa notebook) mo edit/update blog malah gak bisa heeeee … senjata makan tuan, pakai .htaccess juga setali tiga uang jika pakai IP dinamis, akhirnya saya pakai private login aja ala Jhezer

  4. wanted_ID says:

    sip kang buat tutorialnya……
    sbenernya q pngen, tp syangnya q pake IP dinamis n g bisa ikut nyoba…. hedee…
    ah yang penting bisa buat tmbah ilmu…
    spa tau bsok” bisa ilmunya k pake…..
    skali lg thx kang…..

    n semangat!!!!!

  5. iskandaria says:

    Repot juga kalau untuk pengguna ISP yang IP address-nya gak bisa diubah sesuai selera, terutama untuk pengguna pribadi (bukan instansi atau organisasi). Setahu saya, mekanisme protokol internet untuk pengguna koneksi pribadi (kayak Telkomsel Flash dan sejenisnya), maka IP address-nya bersifat dinamis setiap kali online. Dan itu gak bisa kita ubah karena harus ngikutin protokol yang sudah paten. Kecuali kalau kita akses via jaringan LAN.

    Jadi, tips pembatasan via IP menurut saya hanya cocok untuk web-web besar atau web milik organisasi/perusahaan. Kalau untuk kalangan blogger yang biasa menggunakan koneksi pribadi, mungkin lebih cocok pakai trik menyembunyikan halaman login atau mengganti default halaman login saja. Atau cukup pakai teknik redirect tanpa pembatasan IP. Jadi, ketika user mengakses halaman login blog WP kita, maka akan dialihkan ke halaman lain. Saya rasa itu sudah cukup aman kok.

    Sebab pada intinya kita cuma menyembunyikan halaman login yang asli. Itu poin utamanya menurut saya.

  6. iskandaria says:

    Oya mas, sekali-sekali bahas juga dong tentang tips pengamanan SQL Injection pada CMS WordPress. Kayaknya celah tersebut lebih berbahaya. Tapi kalau mas Indam punya pengetahuan tentang itu saja. Saya sendiri masih melakukan riset kecil-kecilan soal itu.

  7. indam says:

    Mas Is,
    Saya sudah katakan diatas, redirectnya bukan berdasarkan IP saja, kalo ngga mau pake IP, Kan bisa pake browser atau language…
    Coba baca url referensinya…

    Secara deafult, wordpress ini sudah sangat aman. Default disini adalah No Plugins, dan theme yang digunakan adalah theme yang ada di wordpress.org.

    Sekali lagi wordpress standard ini sudah sangat aman yang penting selalu di update versi terbaru ‘ya walaupun aku masih pake wp-versi lama’. Developer wp sendiri sudah menambal beberapa celah yang ada di wp versi lawas, jadi ngga ada yang perlu dikhawatirkan. Lain hal kalo install beberapa plugins/theme aneh lagi dan masih pake wp versi lama. Intinya, kalo mau aman, pake versi terbaru!

    Oia, satu lagi, coba wp_debug-nya dikasih nilai true, ada di wp-config.php
    Untuk menerapkan ini, jangan lakukan di versi online. Coba di localhost dulu, setelah wp-debugnya dikasih true, coba masuk ke dashboard dan lihat blognya, tekan ctrl + u, apakah ada yang error, kalo ngga ada yg error insha Allah aman.
    * Tips, dengan catatan–fungsi penghilang errornya dihapus dulu.

    Oia, mas ‘seandainya ada yg ingin nerror blog kita’, selalu ada cara untuk melumpuhkan blog kita, hanya saja ‘untuk apa?’ manfaatnya apa? Kalaupun ada, kan lebih baik yang jadi target adalah situs-situs gede.
    Saya sendiri, udah malas mencoba membobol website ‘padahal video tutorialnya banyak bgt loh’, dulu sih pernah iseng-isen tapi pas masih sering ol diwarnet hahaha
    Sekrang udah jarang banget ol diwarnet, udah punya laptop soalnya, dan laptop itu dikasih sama ollie, kan salah besar kalo laptopnya dipake untk kerjain orang. Untuk SQLi sendiri saya Tidak bisa bahas, karena saya tidak melalukan penetrasi, bisa sih, kalo aku kopas…
    Oia lagi, di form komentar wordpress 3 masih ada celah untuk ngerjain suatu blog, ya walaupun tidak menimbulkan kerusakan, tapi kayaknya bisa buat admin sedikit kaget….

  8. iskandaria says:

    Sebentar, WP standar sudah sangat aman? Saya kurang setuju sih. HIngga versi 3.1.3 ini aja, masih banyak celah yang bisa menampilkan pesan error yang mengandung username akun hosting. Apa itu masih bisa dibilang aman? Kalau itu masih dianggap aman, mungkin harus merujuk per kasus aja, misalnya ketika passwordnya sangat kuat atau rumit (tidak mudah ditebak).

    Bagi saya, salah satu standar keamanan sebuah CMS adalah ketika ia tidak akan menampilkan pesan error yang memunculkan username akun hosting (ketika dieksploitasi via URL).

    Tapi itu cuma salah satu standar aja.

    Soal pertanyaan seandainya ada yg ingin nerror blog kita’, selalu ada cara untuk melumpuhkan blog kita, hanya saja ‘untuk apa?’ manfaatnya apa?

    Saya jawab begini saja:
    Okelah kalau emang gak ada manfaatnya. APalagi jika blog/situs kita masih baru, ngga terkenal, masih rendah trafiknya, atau cuma buat nulis iseng sebagai pengisi waktu. Tapi kita di sini kan bicara secara umum untuk semua pihak yang menggunakan CMS WordPress. Di dalamnya termasuk instansi pemerintahan atau organisasi-organisasi (non personal).

    Saya menulis tentang tips pengamanan Worpdress bukan cuma buat ditujukan bagi blogger-blogger yang blognya cuma buat nulis atau iseng, tapi juga buat para admin yang kebetulan mengelola sebuah website berbasis WordPress.

    Makanya di tulisan saya yang membahas masalah security WP, saya lebih memilih nulis SITUS daripada BLOG. Sebab saya pikir SITUS itu lebih umum. WordPress bukan cuma buat blog, tapi juga bisa untuk jenis website lainnnya. Maka saya pilih kata SITUS daripada blog.

    Lalu, saya pikir, lebih baik mencegah daripada mengobati. Ibarat kita pasang antivirus di komputer yang kita gunakan. Kalau emang gak peduli masalah keamanan karena mikir buat apa si pembuat virus atau hacker membobol situs kita, apa untungnya, apa manfaatnya, dsb, maka berarti kita ngga menghargai apa yang telah kita bangun selama ini (blog/situs kita).

    Daripada nanti repot membenahi ketika kena deface atau dihack, lebih baik saya pikir mencegahnya dulu. Kita mikir dari sisi kita saja. Terlepas dari apa ada manfaatnya atau tidak bagi mereka yang iseng. Toh, walaupun nanti masih bisa dibobol juga, ya yang penting kita sudah berusaha.

    Toh, kegiatan menambal celah itu kan asyik juga dan bisa menambah keterampilan teknis kita sebagai admin. Selain nambah pengalaman juga.

  9. indam says:

    Mungkin saya salah pemahaman

  10. indam says:

    Mas Is,
    Mungkin saya salah pemahaman

  11. iskandaria says:

    Gak papa mas. Santai aja. KOmentar saya mungkin agak menggurui. Tapi jujur itu cuma sharing opini pribadi saya aja. Mas Indam bisa memberi tanggapan balik jika memang ada yang perlu diluruskan. Maaf kalau komentar saya kurang berkenan. Saya udah biasa berdiskusi di kolom komentar, walaupun kadang (seringkali kali ya) terkesan ngotot..wkwkwkwkwk

  12. kezedot says:

    mantab
    menarik
    salam

  13. irma says:

    Dear..
    Pak,q mau minta tolong,ada kekeliruan dalam settingan toko online
    kami,q pakai localhost wordpress,gini pak,q kan buka setting tab general,nah disitu kan q rubah
    almt URL,yg tdinya http://localhost/wordpress q rubah jadi
    http://chzeeolshop.com ,,itu gimana caranya supaya bisa terbuka
    kembali,soalnya yg q udah upload byk foto2 brg yg mau kami promosikan
    nantinya,tlong bget ya pak bantuannya,q keliru,q pkir itu bs
    dirubah,pas buka kembali mlh muncul SEPERTI BERIKUT ;
    This webpage is not available
    The server at chzeeolshop.com can’t be found, because the DNS lookup
    failed. DNS is the web service that translates a website’s name to its
    Internet address. This error is most often caused by having no
    connection to the Internet or a misconfigured network. It can also be
    caused by an unresponsive DNS server or a firewall preventing Google
    Chrome from accessing the network.
    Here are some suggestions:
    Reload this webpage later.
    Check your Internet connection. Restart any router, modem, or other
    network devices you may be using.
    Check your DNS settings. Contact your network administrator if you’re
    not sure what this means.
    Try disabling network prediction by following these steps: Go to the
    wrench menu > Options > Under the Hood and deselect “Predict network
    actions to improve page load performance.” If this does not resolve
    the issue, we recommend selecting this option again for improved
    performance.
    Add Google Chrome as a permitted program in your firewall’s or
    antivirus software’s settings. If it is already a permitted program,
    try deleting it from the list of permitted programs and adding it
    again.
    If you use a proxy server, check your proxy settings or contact your
    network administrator to make sure the proxy server is working. If you
    don’t believe you should be using a proxy server, adjust your proxy
    settings: Go to the wrench menu > Options > Under the Hood > Change
    proxy settings… > LAN Settings and deselect the “Use a proxy server
    for your LAN” checkbox.

    Error 105 (net::ERR_NAME_NOT_RESOLVED): Unable to resolve the server’s DNS address.
    ,tlg bget di bls..trim’s
    Irma

    1. indam says:

      Itu bisa diubah lagi lewat phpmyadmin…

  14. aku gak bisa pake pembatasan ip dong mas, soalya suka masih login dari warnet??

  15. Rangga says:

    Kenapa ya cara ini not recomended?

  16. khay says:

    sepekan silam blog saya kena hack juga.. yang diganti index.php di themenya. Kira2 itu hacker masuk lwat mana ya bro??? bisa kasih saran gk untuk keamanan blog saya di masa yg akan datang, spy gk di hack lagi.

    salam hangat selalu

  17. Fajar says:

    Sebenarnya trik nya mantebb mas gan. cuman saya kan pake nya IP dynamic jd tiap hari gonta-ganti IP belum lg ntr login pakai smartphone/tablet/laptop. haduuhh malah lbh ribett. btw, nice share :D

  18. blog remaja says:

    mantab
    menarik
    salam

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> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Disclaimer, FAQ & License

Hello Gaes, untuk tujuan apapun semua content text di blog ini dapat di copas, tanpa harus menulis sumbernya. Namun content yang berupa gambar--harus Anda periksa kembali lisensinya.

Adapun(mungkin) sebagian content blog ini sudah kadaluarsa atau sudah tidak relevan, contoh :'Theme default WordPress 3+ adalah Twentyten 'apakah selamanya Twentyten?' ngga kan? Indam selaku pengelolah berharap melaporkan jika menemukan content basi yang mungkin dapat menimbulkan salah persepsi tentang content dan konsep itu sendiri. Oia, karena blog ini bersifat pribadi dan bukan untuk komersil, mungkin anda juga akan menemukan tulisan tentang aku dan hal-hal rancu yang sama sekali ngga ada hubungan dengan web dan blog-blogan. Perlu dicatat: Indam selaku pengelolah tidak bertanggung jawab atas kerugian materi, waktu, tenaga, pikiran yang mungkin ditimbulkan dari sini. So, pandai-pandai yah dalam memilah informasi. Thanks for reading.

Quote

Ketika Anda melihat orang lain mengangkat dirinya dengan cara merendahkan orang lain, sebenarnya orang itu lebih rendah dari mereka yang direndahkan. Phidias--greece filsuf

+
-