Apa URL untuk login pengguna (alias Cara menyembunyikan formulir login?)

10

Saya tidak ingin mengizinkan pengunjung mendaftar di situs web saya; namun, saya menemukan kebutuhan untuk memiliki satu pengguna terdaftar untuk tujuan pengujian. Sebagai contoh, saya akan menerbitkan artikel dengan akses terbatas sehingga pengguna pengujian saya dapat melihat bagaimana artikel terlihat di situs tanpa "menayangkan cucian kotor" kepada masyarakat umum (ok, semua 1 / hari yang benar-benar mengunjungi ...) .

Masalah saya saat ini adalah bahwa saya akhirnya merusak situs web karena saya harus menerbitkan / membatalkan publikasi formulir login pengguna. Saat ini, saya 'menghindari' masalah ini dengan menyembunyikan formulir login di subkategori sehingga tidak langsung terlihat oleh pengunjung biasa. Apakah mungkin membuat metode alternatif (mis. URL khusus) yang akan memungkinkan pengguna pengujian saya untuk melihat konten yang ditandai tanpa dibatasi apa yang akan dilihat oleh tamu dengan akses publik?

bobthechemist
sumber

Jawaban:

8

Anda dapat membuat menu yang tidak dipublikasikan, dan menaruh tautan ke halaman login pengguna di sana, dan beri nama alias apa pun yang Anda inginkan. Selama Anda mematikan fungsi registrasi yang diizinkan dalam opsi-opsi manajer pengguna, Anda akan menjadi baik.

Maka berikan saja url pada klien Anda.

Jadi langkah-langkahnya adalah:

  1. Buat menu baru, beri nama Tersembunyi
  2. Jangan menerbitkan modul menu baru
  3. Tambahkan item menu baru, pilih Users Manager dan form Login
  4. Beri judul item menu Masuk atau sesuatu sehingga Anda tahu apa itu, tetapi ubah alias menjadi sesuatu yang tidak akan ditebak seseorang.
  5. Uji formulir Anda dengan membuka yoursite.com/aliasname
Brian Peat
sumber
10

Sebagai perpanjangan dari jawaban Brian Peat:

Jika Anda pergi ke url

domain.com/index.php?option=com_users&view=login

Anda dapat login tanpa memiliki set item menu atau segala jenis masalah publikasi / batalkan publikasi. Ini bisa disebut sebagai sedikit masalah di Joomla karena mengetahui jalan di sekitar Anda masih dapat mendaftar / masuk jika Anda mengetahui struktur url. Ada aturan untuk mencegah hal ini tetapi biasanya secara default Anda bisa menggunakan jalur langsung seperti itu untuk sampai ke tempat yang Anda tuju.

http://www.joomla.org/index.php?option=com_users&view=login

Ini dia sedang bekerja, bahkan situs Joomla utama yang tidak memiliki akses langsung untuk login dapat diakses seperti itu.

Maksud saya adalah, pastikan Anda menggunakan ACL yang tepat juga, jika "hanya" pengguna terdaftar maka siapa pun yang mengetahui struktur Joomla dapat masuk. Juga seperti yang dikatakan Brian pastikan pendaftaran boleh dimatikan.

Jordan Ramstad
sumber
Apakah ada URL analog untuk /index.php?option=com_users&view=logout (yang saya pikir intuitif tetapi ternyata salah)?
bobthechemist
Anda bermaksud keluar otomatis? Agak aneh, logout di joomla membutuhkan beberapa data posting, maka dari itu form / tombol. Tautan itu pada dasarnya akan membawa Anda ke sebuah tombol.
Jordan Ramstad
Jika Anda benar-benar khawatir tentang orang yang masuk ke halaman itu, Anda dapat menginstal plugin mewah yang memaksa pengguna untuk menggunakan token sebagai bagian dari url (saya tahu ada satu untuk admin, cukup yakin ada satu untuk bagian depan) end) ... tetapi Anda juga dapat menginstal ini: extensions.joomla.org/extensions/access-a-security/… yang memblokir IP jika pengguna mencoba mengatakan, 10 kali untuk login. Ini juga memberi tahu Anda. Ini akan membuka mata Anda seberapa sering situs Anda diserang. Saya perhatikan 100% percobaan semua menggunakan "admin" sebagai nama pengguna juga.
Brian Peat
Saya hanya ingin memperluas untuk mengatakan bahwa, bahkan tanpa item menu, login / daftar masih dapat diakses. Jadi jika ada kebutuhan untuk masuk tanpa harus berurusan dengan item menu itu mungkin, tetapi itu juga berarti bahwa siapa pun dapat melakukannya. Jika register tidak dikunci maka siapa pun juga dapat membuat akun dan mengakses halaman "rahasia" apa pun yang mungkin ada jika tidak ada ACL untuk mencegahnya. Ini dapat dilakukan dengan membuat grup ACL tambahan, dan membuat pengguna yang dapat mengaksesnya juga di grup itu. Halaman yang dimaksud akan membutuhkan grup itu juga.
Jordan Ramstad
Um, apa gunanya ACL jika Anda belum masuk. Ini adalah pemahaman saya bahwa Anda tidak akan pernah bisa menyembunyikan halaman login publik tanpa plugin khusus. Bagaimanapun juga, kecuali untuk serangan brute force, jika Anda tidak memiliki login, Anda tidak bisa pergi terlalu jauh. Saya tidak melihat gunanya mengacaukan ini sebanyak ini.
Brian Peat
4

Anda harus dapat mencapai ini dengan menimpa tata letak untuk formulir login front-end. Tambahkan beberapa kode PHP di dekat bagian atas file tata letak. Kode tambahan ini memeriksa parameter khusus di URL dan untuk nilai tertentu. Jika seseorang mencoba mengakses halaman login melalui URL apa pun tetapi tidak menyertakan parameter khusus dan nilai tertentu (seperti abc = xyz ), maka kode mengeluarkan "kembali;" sehingga tata letak formulir tidak akan diproses untuk ditampilkan.

Dengan kode ini di file tata letak utama, hanya pengguna yang mengetahui URL (yang menyertakan parameter khusus ini dan nilai yang dapat diterima) yang dapat menggunakan formulir login itu.

Sebagai contoh: URL rahasia dapat

mydomain.com/?option=com_users&view=login&abc=xyz

Kemudian tambahkan kode ini di dekat bagian atas file tata letak utama untuk formulir login:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}
RCarey
sumber
Ide bagus! Ini adalah solusi yang cukup mudah untuk menonaktifkan tampilan. Itu dapat diperluas ke modul juga, jika perlu (meskipun modul tidak memiliki url langsung untuk diakses).
Jordan Ramstad
3

Saya sering menghadapi masalah yang sama karena saya sering ingin login front-end untuk mengedit situs web yang saya kelola, tanpa perlu memiliki formulir login. Saya akhirnya membuat bookmarklet kecil yang saya tambahkan ke bilah alat browser saya. Ini jelas merupakan solusi yang sangat "lokal", karena bookmarklet hanya tersedia untuk saya (atau siapa pun yang saya salin kodenya), tetapi ia berfungsi di situs APAPUN Joomla dan merupakan penghemat waktu yang luar biasa, cukup klik tautan dan formulir login akan ditampilkan (mengingat bahwa Anda berada di situs Joomla, tentu saja ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
johanpw
sumber