ユーザーログイン用のURLとは何ですか(別名、ログインフォームを非表示にする方法は?)


10

訪問者が私のウェブサイトに登録することを許可したくありません。ただし、テストの目的で、単一の登録ユーザーが必要であることがわかりました。たとえば、アクセスが制限された記事を公開して、テストユーザーが「汚れた洗濯物を干す」ことなく、サイトで記事がどのように見えるかを一般に公開します(実際には、実際に1日1回訪問する...)。 。

現時点での問題は、ユーザーのログインフォームを公開または非公開にする必要があるため、最終的にWebサイトを改ざんしてしまうことです。現在、私はログインフォームをサブカテゴリに非表示にすることでこの問題を「回避」し、カジュアルな訪問者にはすぐに表示されないようにしています。パブリックアクセス権を持つゲストに表示される内容を変更せずに、テストユーザーが制限付きとしてマークされたコンテンツを表示できるようにする別の方法(カスタムURLなど)を作成することはできますか?

回答:


8

公開されていないメニューを作成し、そこにユーザーログインページへのリンクを配置して、エイリアスに任意の名前を付けることができます。ユーザーマネージャーのオプションで登録の許可機能をオフにする限り、問題はありません。

次に、クライアントにURLを指定します。

したがって、手順は次のとおりです。

  1. 新しいメニューを作成し、Hiddenという名前を付けます
  2. 新しいメニューのモジュールを公開しないでください
  3. 新しいメニュー項目を追加し、ユーザーマネージャとログインフォームを選択します。
  4. メニュー項目「ログイン」などにタイトルを付けて、それが何であるかを理解できるようにしますが、エイリアスを他の人が推測できないものに変更します。
  5. yoursite.com/aliasnameにアクセスしてフォームをテストします

10

ブライアンピートの答えの拡張として:

あなたがURLに行くなら

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

メニュー項目を設定したり、公開/非公開の問題を発生させたりせずにログインできます。これは、URL構造がわかっていても、登録/ログインできる方法がわかっているため、Joomlaの問題の一部と言えます。これを防ぐためのルールがありますが、通常はデフォルトでこのような直接パスを使用して、目的の場所に到達できます。

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

これが動作中です。ログインに直接アクセスできないメインのJoomlaサイトでも、そのようにアクセスできます。

私の要点は、適切なACLも使用することです。その「ちょうど」登録されたユーザーがJoomlaの構造を知っている人なら誰でも参加できます。また、ブライアンが言ったように、登録の許可がオフになっていることを確認してください。


/index.php?option=com_users&view=logoutに類似のURLはありますか(これは直感的にはわかりましたが、正しくないことがわかりました)?
bobthechemist 2014年

自動ログアウトするつもりですか?少し奇妙ですが、joomlaでのログアウトにはいくつかの投稿データが必要なので、フォーム/ボタンが必要です。そのリンクは基本的にボタンに移動します。
ジョーダンラムスタッド2014年

人々がそのページにアクセスすることを本当に心配している場合は、ユーザーがURLの一部としてトークンを使用するように強制する豪華なプラグインをインストールすることができます(管理者用のトークンが1つあることを知っています。 end)...しかし、これをインストールすることもできます:extensions.joomla.org/extensions/access-a-security/…これは、ユーザーが10回ログインしようとするとIPをブロックします。また、通知されます。それはあなたのサイトが攻撃されている頻度にあなたの目を開くでしょう。100%試行すべてがユーザー名として「admin」も使用していることに気づきました。
ブライアンピート2014年

メニュー項目がなくても、ログイン/登録は引き続きアクセス可能であると言って拡張したいと思います。したがって、メニュー項目を扱わずにログインする必要がある場合は可能ですが、それは誰でもできることを意味します。登録がロックされていない場合、誰もがアカウントを作成し、それを防止するACLがない場合は、「秘密」ページにアクセスすることができます。これを行うには、追加のACLグループを作成し、そのグループにもアクセスできるユーザーを作成します。問題のページには、そのグループも必要です。
ジョーダンラムスタッド2014年

まだログインしていない場合、ACLはどのように役立ちますか。特別なプラグインがないとパブリックログインページを非表示にできないことは理解しています。いずれにせよ、ブルートフォース攻撃を除いて、ログインがないと、遠くまで行けません。私はこれをいじる用途はそれほど見ません。
ブライアンピート2014年

4

フロントエンドのログインフォームのレイアウトをオーバーライドすることで、これを実現できるはずです。レイアウトファイルの上部近くにいくつかのPHPコードを追加します。この追加されたコードは、URLのカスタムパラメータと特定の値をチェックします。誰かがURLを介してログインページにアクセスしようとしたが、カスタムパラメータと特定の値(abc = xyzなど)が含まれていない場合、コードは「リターン」を発行します。フォームのレイアウトが表示のために処理されないようにします。

オーバーライドレイアウトファイルのこのコードを使用すると、URL(このカスタムパラメータと許容値を含む)を知っているユーザーだけがそのログインフォームを使用できます。

例: シークレットURLは

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

次に、ログインフォームのオーバーライドレイアウトファイルの上部近くに次のコードを追加します。

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}

良いアイデア!これは、ビューを無効にする非常に簡単なソリューションです。必要に応じて、モジュールに拡張することもできます(ただし、モジュールにアクセスするための直接のURLはありません)。
ジョーダンラムスタッド2014年

3

ログインフォームがなくても、管理しているWebサイトを編集するためにフロントエンドログインが必要になることがよくあるため、よく似た問題に直面しました。 ブラウザのツールバーに追加した小さなブックマークレットを作成してしまいました。ブックマークレットは私(またはコードのコピー先)だけが利用できるため、これは明らかに非常に「ローカルな」ソリューションですが、これはすべてのJoomlaサイトで機能し、信じられないほど時間を節約できます。リンクとログインフォームをクリックするだけです。表示されます(もちろん、Joomlaサイトにいることを前提とします...)。

 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");})());
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.