-2

私はHTMLにかなり慣れていません.1週間の新しいようです。私は Web ストアを作成しています。「管理パネル」にログインして、製品をより簡単に管理できるようにしたいと考えています。新規追加、削除、名前変更など。私の問題は、ログイン情報を html コードに保存していて、if ステートメントを使用して有効性を確認していることです。

コードをテストしていたとき、好奇心が強く、要素を調べたいと思いました。当然のことながら、私のログイン情報全体があり、誰でもアクセスできます。

どうにかして非表示にするか、ログイン フィールドを私以外のユーザーから非表示にする必要があります。しかし、私はそれにアプローチする方法がわかりません。ストアページに非表示の部分があり、それを一定回数クリックするとフィールドが表示されるなど、いくつかの解決策を考えました。しかし、私はそれを複雑にしていると思います。

どんなアイデアでも大歓迎です。ありがとう。以下は、ログインするための私の機能です。

function login()
    {
        var username = "test username";
        var password = "testpassword";

        if(document.getElementById("username field").value == username && document.getElementById("password field").value == password)
        {
            var btn = document.createElement("BUTTON");
            document.body.appendChild(btn);

            <!-- hide the user name field after login -->
            document.getElementById("username field").hidden = true;

            <!-- hide the password field after login -->
            document.getElementById("password field").hidden = true;

            <!-- hide the login button after login -->
            document.getElementById("login btn").hidden = true;

            <!-- show a message indicating login was successfull -->
            window.alert("Login successfull! Welcome back admin!")
        }
        else
        {
            window.alert("Sorry, you are not authorized to view this page.");
        }
    }

そして、これは検査要素のスクリーンショットです。私は唯一のユーザーであり、自分自身を公開せずに管理パネルにアクセスできるようにするための方法であるため、データベースのようなあまりにもクレイジーなものは望んでいません。再度、感謝します。

要素の検査のスクリーンショット

編集:

私は自分のサーバーを使用していません。Wix.com を使用して最初の Web サイトを作成し、次に HTML ウィジェットを使用して Web ストアを作成しています。人々がサーバーと通信することを許可しているとは思いません。

4

3 に答える 3

0

あなたの特定の要求に対する簡単な解決策はありませんが、詳細を説明する前に、非常に重要な 3 つの点を強調したいと思います。

1: Javascript は安全ではありません

Javascript はクライアント側の言語です。これは、ユーザーから取得した、これまでに扱ってきたすべてのデータを直接変更できることを意味します。これらには、HTML タグの値や属性、インライン Javascript、ロードされた画像ファイルなどが含まれますが、これらに限定されません。基本的に、ユーザーのコンピューターにキャッシュされているものはすべて変更される可能性があり、期待どおりの結果が得られない可能性があります。 .

そのため、Javascript 認証システムは 、どの定義から見ても絶対に安全ではありません。自分だけがアクセスできるローカル ページの場合は、それで十分ですが、そもそもなぜ認証が必要なのかという疑問が生じます。それでも、新しい開発者として、とにかくそれをやろうとしないことを広くお勧めします. 完全に安全でない方法で何かを行う方法を練習して学習しても意味がなく、誰もそれを提案する可能性はありません.

2: 認証はトリッキーなトピックです

ログインの認証は簡単なことではありません。はい、ログイン スクリプトを作成するの簡単ですが、適切に実行するのは簡単ではありません。自分で何かを作ることを思いとどまらせたり、新しい開発者が何かの目標を追求することを思いとどまらせたりするつもりはありませんが、認証は、HTML を始めて 1 週間で習得できるものではありません。辛辣に思われたら申し訳ありませんが、何年もの間アプリケーションの首謀者でありながら、いまだにそれを安全に行っていない人がいます。

3: サードパーティがベスト

最も決定的な攻撃者のみがアクセスできる可能性が高い独自の認証システムを作成することは可能ですが、Javascript 認証は必要ありません。Javascript は、開発者にとってのソリューションというよりも、ユーザーにとって便利なものであると考えてください。Javascript はいくつかの素晴らしいことを行うことができますが、信頼できるデータ ソースになることは決してできません。あなたが提供したソースコードにはセキュリティ上の欠陥がたくさんあるので、この重要な点を理解してください。

--

さあ、やりたいことへ。自分が「管理者」ユーザーであることを識別することは、パスワードを入力することです。パスワードを入力する前に自分がこのサイトの所有者であることがわかった場合、パスワードは必要ありませんよね? 要するに、やりたいことはできません。とにかく、確実ではありません。特定の IP を使用している場合にのみこれらのフォームを表示することは可能ですが、IP はマスクされ、模倣され、変更される可能性があるため、安全ではなくなります。

すべての面倒な作業を行うために使用できるサードパーティの認証方法がいくつかあります。ページにフィールドを配置するだけで、残りは処理されます。任意のソーシャル メディア ログイン (Facebook、Twitter、Google Plus など) を使用することも、O Authを使用することもできます。これは、認証の面倒な作業をすべて処理します。

あなたや他の誰かが独自の認証方法を追求することを思いとどまらせるつもりはありませんが、正直なところ、これはあなたのスキルレベルをはるかに超えたものであり、今は考えるべきではないと思います.

于 2016-04-26T16:46:33.683 に答える
0

サーバー経由でページを提供する場合は、基本的な HTTP 認証を適用できます。セットアップが非常に簡単で、標準のセキュリティの利点があります。

たとえば、これに関するApacheドキュメントがあります。

于 2016-04-26T16:26:47.213 に答える