phpを使用するページのパスワード。 ページにはパスワードを設定しております。 なぜページにパスワードを設定するのでしょうか?

21.07.2023

したがって、私たちのタスクは、特定のページにアクセスするためのパスワードを設定することです。 いわば最も原始的な保護方法、つまり JavaScript の数行から始めましょう。

Var pass = プロンプト("パスワードを入力してください:", ""); if (pass == null) window.location = "wrong.html"; else if (pass.toLowerCase() == "wwvsfc") window.location = "temp.html"; else window.location = "間違った.html"; 構成を使用して別のファイルにスクリプトを隠すなどのトリックは、基本的には何も変わりません。

同様のシステムを Java で実装すると、次のようになります。

java.applet.* をインポートします。 java.awt.* をインポートします。 java.net.* をインポートします。 public class Password extends Applet( TextField ログイン, パスワード; String Login = "ログイン"; String Password = "パスワード"; public Password() ( ) public void init() ( パネル パネル = new パネル(); パネル.setLayout(new) GridLayout(2,2)); ログイン = new TextField(20); パネル.add(新しい) ラベル("パスワード:")); new Button("Ok")); public boolean action(Event evt, Object obj) ( if(evt.targetinstanceof Button) ( String s; if(login.getText().equals(Login) && password.getText() .equals(パスワード)) ( s = "http://www.hackzone.ru/articles/ok.html" ; ) else (s = "http://www.hackzone.ru/articles/bad.html"; ) ) try ( getAppletContext().showDocument(new URL(s)); ) catch(Exception e) (password.setText (e.toString()); true を返す; false を返す)

このアプレットをページに組み込むと、次のような結果が得られます (以降のすべての例では ok.html と bad.html を使用します)。

パスワードチェック

ユーザーごとに作成して、よりスマートにすることができます 別ページ、ファイルからデータを強制的に読み取るなど。 根本的な欠点は、ユーザーが探しているページにアクセスすると、その URL を思い出すのを誰も妨げることができないため、これは 1 回限りのツールであることです。 もちろん、アドレス バーに URL が表示されないようにページをフレーム内に非表示にすることもできますが、この保護が誰によるものであるかは理解されています。 繰り返しますが、アプレットは完全にクライアントに渡され、原則として完全に研究に利用できます。

CGI の使用に基づくソリューションには最後の欠点がありません。 単純な Perl スクリプトは次のようになります。

#!/usr/bin/perluse CGI qw(:standard); $query = 新しい CGI;$ok = "ok.html";$address = "bad.html"; $login = "ログイン";$password = "パスワード"; $l = $query->param("ログイン"); $p = $query->param("パスワード"); if(($p eq $password) && ($l eq $login))( $address = $ok;)print $query->redirect($address);

使用例:

パスワードチェック

最初の欠点に対処するには、動的に形成することができます。 新しいページ URL を明かすことなく、内部のどこかに隠された何かに基づいています。

変更されたコード:

#!/usr/bin/perluse CGI qw(:standard); $query = 新しい CGI; $ok = "ok.html"; $address = "悪い.html"; $docroot = $ENV("DOCUMENT_ROOT"); $localpath = "/articles/"; $login = "ログイン";$password = "パスワード"; $l = $query->param("ログイン"); $p = $query->param("パスワード"); if(($p eq $password) && ($l eq $login))( $address = $ok;) print $query->header(); open(FL, $docroot.$localpath.$address); while())(# ここでは、同時に HTML コードをその場で変更できます# なぜですか? まあ、それはわかりません... :) print $_;) close (FL);

使用例:

パスワードチェック

ご覧のとおり、SSI を犠牲にしてファイル URL は表示されなくなりました (ただし、出力中にキャッチして手動で処理することはできます)。ただし、ここでも、理論的には URL を推測する可能性が残っています。もちろん相対パスを使用する場合、あらゆる種類の画像が含まれているとページに悪影響を与える可能性があることを忘れてはなりません。

最後に、ほとんどの 信頼できる方法アクセス パスワードを設定するということは、サーバー ツールを使用することを意味します。結局のところ、人々がそれを行ったのは無駄ではありません。 最も人気のある Apache と、同様に人気のある IIS の 2 つに焦点を当てます :)

IIS を使用すると、すべてが非常に簡単になります。保護は NTFS を使用して実行されますが、当然ながら、サーバー管理者以外のユーザーの能力はある程度制限されます。 考え方は次のとおりです。ユーザー IUSR_xxxx は、デフォルトですべてのサイト訪問者がそのアカウントで作業しますが、目的のファイル/ディレクトリへのアクセスは拒否されます。 その後、「プロパティ」->「セキュリティ」で明示的に指定されたユーザーのみがこれらのファイルにアクセスできるようになります。 それらをグループに結合する方がはるかに便利であることは明らかです。 ここには微妙な点がいくつかあります。 まず、指定したユーザーにローカル ログオン権限を与える必要があります (ユーザー マネージャーの [ポリシー] -> [ユーザー権限])。次に、WWW 設定で WWW サービスの基本認証 (クリア テキスト) を選択しない場合、ユーザーのみがアクセスを許可されます。 インターネットエクスプローラー「A.

Apache では、すべての処理が少し異なります。 保護はディレクトリ レベルで設定されます。 対応するディレクティブは、一般的な php.ini 設定ファイルと .htaccess ファイルの両方に配置できます。 どちらの場合もディレクティブのセットは同じであり、他人のサーバー上の Web サイト/ページ用のスペースを借りているほとんどの人にとって、最初のオプションは利用できません。 したがって、アクセスを制限するディレクトリに .htaccess ファイルを作成し、そのファイルに次のディレクティブを挿入します。

認証タイプ コントロールの種類- 基本は通常使用されます。

認証名 名前- ユーザー名とパスワードが有効な領域の名前を指定します。 これは、ブラウザがパスワード ダイアログに表示する名前と同じです。 さまざまなディレクトリにこのような名前を 1 つ設定すると、ユーザーが追加のパスワードを入力する時間を節約できます。

認証グループファイル 名前- セット ファイル名、グループとそのメンバーの名前が保存されます。 その形式:
グループ1: メンバー1 メンバー2 ...
グループ2: メンバー3 メンバー4 ...

認証ユーザーファイル 名前- パスワードを含むファイルの名前を指定します。 通常、これを作成するには、Apache ディストリビューションの htpasswd ユーティリティを使用する必要があります。 しかし、によると 少なくとも一部のサーバーのバージョンでは、この形式は次のようになります。
ユーザー1: パスワードハッシュ1
ユーザー2: パスワードハッシュ2

パスワードハッシュの取得は十分に可能です 標準機能パール:
$hash=crypt($pass,$salt);
ここで、$pass はパスワード、$salt はハッシュの生成に関与する 2 文字の文字列です。

したがって、新しいユーザーの追加、HTML フォームによるパスワードの変更などのプロセスを自動化することはかなり可能です。

ユーザーが必要 ユーザー1 ユーザー2そしてグループが必要です ユーザー1 ユーザー2特定のディレクトリにアクセスできるユーザーとグループを指定できます。

require valid-user は、システム パスワード ファイルで指定されたすべてのユーザーへのアクセスを許可します。

... 、ここでメソッド HTTPメソッドを定義します。 たとえば、ネストされた非ディレクティブの使用は、GET メソッドと POST メソッドを使用する場合に制限されます (通常、ネストされたディレクティブは、require、order、allow、deny で十分です)。

もう 1 つの便利なディレクティブは、deny と allowed です。それぞれアクセスを拒否し、許可します。これらは次のように使用されます。
全員から否定する
192.168から許可

デフォルトでは、最初にすべての拒否が実行され、次にすべてが許可されるため、すべてから許可すると、拒否に関係なくすべてのユーザーにアクセスが許可されます。 順序は、 order ディレクティブ: orderallow,deny を使用して変更できます。

「deny from all」は、CGI 経由でページを保護する 2 番目の方法に適しています。ゲストブックなどのあらゆる種類のパスワードをカバーするのに最適なのは、このディレクティブです。 このディレクトリからページにアクセスしようとすると、ユーザーは存在しないページに関するメッセージを受け取ります。

ちなみに、ここではついでに、独立したエラー処理を示します。 この場合- コード 403、禁止。 誰もがよく使う 404 - Not Found と 401 - Unauthorized は同じ方法で処理されます。 これを行うには、ErrorDocument ディレクティブを .htaccess に追加するだけです。 URLコード:
エラードキュメント 404 /cgi-bin/bad.pl
エラードキュメント 403 /cgi-bin/badaccess.pl
エラードキュメント 401 /cgi-bin/badaccess.pl

スクリプトは REQUEST_URI 環境変数を使用してエラー メッセージを生成するだけなので、代わりに適切なページを指定するだけで済みます。

最後の例では、次の内容を含む .htaccess ファイルを使用します。

AuthType BasicAuthName TestAuthGroupFile /my/local/path/tgroupAuthUserFile /my/local/path/tuserrequire group test

tgroup ファイルには 1 行しかありません - テスト: ログインテスト、tuser ファイル内 - ログイン (パスワード) とテスト (テスト) の暗号化されたパスワード。 このページに再度アクセスすると、ブラウザはこの領域にアクセスしたばかりであることを認識し、ユーザーに不必要なパスワードの要求を行わせないことに注意してください。

簡単に言えば、これは Web ページを保護するために必要な最小限の情報セットです。 実践が示すように、サーバーが提供するツールに基づくソリューションのみを多かれ少なかれ信頼する必要があるため (サーバーに別のホールが発見されるまで)、可能であればそれらを選択することをお勧めします。


パスワードは情報を保護する主な手段であり、ログインからコンピュータ上のあらゆる場所で使用されます。 アカウントページの承認前に ソーシャルネットワーク。 アクティブ ユーザーは非常に多くの異なるセキュリティ キーを持っているため、すべてをメモリ内に保持することは不可能です。 ここで、ブラウザ設定にパスワードを保存する機能が役に立ちます。

次のように動作します。

  • 登録が必要な Web サイトを開きます。
  • プロフィールにログイン情報を入力します。
  • ブラウザは、入力した情報を保存するように求めるプロンプトを表示します。これに同意します。
  • 次回このサイトを開くときは、何も入力する必要はありません。 アカウントからログアウトしても、認証フォームのすべての行が入力されます。 しかし、ここで重大な欠点が明らかになります。アスタリスクで隠されたパスワードを表示する方法と、それがそもそも可能かどうかを調べてみましょう。

    したがって、サイトにアクセスすると、アスタリスクの下にパスワードが表示されます。 「ログイン」をクリックすれば他に何も入力する必要がなく、他のユーザーにはパスワードが表示されないので、便利なことのように思えます。

    アスタリスクで覆われたパスワードはハッキングのターゲットになりやすいです。

    コンピューターで確認してください。 例として使用します Googleブラウザクロム:

    同様に、他のブラウザでもアカウントのアクセス キーを表示できます。 モジラ Firefox、オペラ、インターネットエクスプローラー。 Mozilla でこれがマテリアルを固定するためにどのように行われるかを見てみましょう:


    ちなみに、「パスワード」に戻す必要はありません。 ページを閉じてからもう一度戻ると、星が戻っていることがわかります。 しかし、これで、それらが個人データの保護者としていかに信頼できないかがわかりました。

    ブラウザの設定

    これで星の露出が終わると思ったら大間違いです。 すべてのブラウザにはさらに多くの機能があります 便利な方法最初にサイトにログインしたときに保存したパスワードを確認してください。 今回は、Opera Web ブラウザを例に挙げてみましょう。


    さまざまなアカウントからの多くの Web サイトのアドレスとデータを含むウィンドウが表示されます。 一見すると、すべて問題ありません。ログイン情報はもちろん表示されますが、パスワードの代わりに見慣れたアスタリスクが表示されます。 ただし、1 つの行をクリックすると、星の横に [表示] ボタンが表示されます。

    ワンクリックすると、サイトのセキュリティ キーが表示されます。 すべてのパスワードを公開したり、スクリーンショットを撮ったりすることもできますが、パスワードで保護されたページが危険にさらされていることにも気付かないでしょう。 この情報は Opera だけでなく、他のブラウザーでも共有されます。 で Google Chromeたとえば、このようなテーブルは次の方法で呼び出すことができます。


    Mozilla Firefox では、設定の「セキュリティ」セクションに、保存されたすべてのアクセス キーを含むテーブルが開きます。

    他のブラウザでも状況は同様です。 オープンアクセス保存することに同意したすべてのデータを必ず用意してください。

    特別なソフトウェアを使用する

    しかし、ブラウザだけがユーザーに関するデータを保存するわけではなく、ユーザーが提供して保存します。

    パスワードを入力してログインする必要があるプログラムでは、起動するたびにパスワードを入力する必要がないように、このデータを記憶することもできます。

    したがって、 特別なユーティリティ、この保存されたデータを表示できるようになります。 このようなユーティリティは同じ原理で動作するため、パスワード クラッカー プログラムを例に挙げてみましょう。 無料で配布されており、その重さは途方もない 45 KB です。


    ウィンドウの「パスワード」行 パスワードユーティリティクラッカーは、保存されたセキュリティ キーを英数字表示します。

    結論

    ご覧のとおり、ブラウザにアスタリスクで隠されたパスワードを見つけるのは難しくありません。 必要なのは、コンピューターにアクセスして数分間の時間だけです。これにより、アカウントのデータが権限のない人物の手に渡ってしまいます。

    もちろん、この場合、パスワードを忘れて目的のプロファイルにアクセスできない危険があります。 ただし、これは怖いことではありません。Gmail パスワードを回復する方法、Wi-Fi パスワードを確認する方法、アカウントへのアクセスを取り戻す方法についてはすでに書きました。 ゲームウォーフェイス等 行けるなら メールボックス、アカウントが登録されている場合、または電話番号をプロフィールにリンクしている場合は、必要に応じて、忘れたパスワードを簡単に回復できます。

    しかし、ブラウザの設定にすでに保存したセキュリティ キーはどうすればよいでしょうか? 正解は削除です。 設定でパスワードを表示すると、コードの保存機能を無効にできることがわかるはずです。 保存されたキーを含むテーブルをクリアしてすべての行を削除し、関数自体を非アクティブ化します。

    同様の記事はありません。

    ページにパスワードを設定します

    この記事は何も啓示を主張していませんが、これらすべてのことは非常に明白であり、広く知られています。 しかし、 最近 Web ページへのアクセス制限に関するいくつかの質問に対する回答をまとめることにしました。

    したがって、私たちのタスクは、特定のページにアクセスするためのパスワードを設定することです。 いわば最も原始的な保護方法から始めましょう。数行の JavaScript コードは次のようなものです。

    Var pass = プロンプト("パスワードを入力してください:", ""); if (pass == null) window.location = "bad.html"; else if (pass.toLowerCase() == "パスワード") window.location = "ok.html"; else window.location = "bad..js"> は基本的には何も変更しません。

    より高いレベルでは、Java で実装された同様のシステムがあります。

    以下は簡略化したソースコードです。

    java.applet.* をインポートします。 java.awt.* をインポートします。 java.net.* をインポートします。 public class Password extends Applet ( TextField ログイン, パスワード; String Login = "login"; String Password = "Password"; public Password() ( ) public void init() (Panel パネル = newPanel();panel.setLayout(new) GridLayout(2,2)); ログイン = new TextField(20); パネル.add(新しい) ラベル("パスワード:")); new Button("Ok")); public boolean action(Event evt, Object obj) ( if(evt.targetinstanceof Button) ( String s; if(login.getText().equals(Login) && password.getText() .equals(パスワード)) ( s = "http://www.webclub.ru/materials/pagepsw/ok.html"; ) else ( s = "http://www.webclub.ru/materials/pagepsw/bad .html"; ) try ( getAppletContext().showDocument (新しい URL(s)); ) catch(Exception e) (password.setText(e.toString()); ) true を返す; false を返す;

    このアプレットをページに組み込むと、次のような結果が得られます。

    パスワードチェック

    よりスマートにすることができ、ユーザーごとに個別のページを作成したり、ファイルからデータを強制的に読み取ったりすることができます。 根本的な欠点は、ユーザーが探しているページにアクセスすると、その URL を思い出すのを誰も妨げることができないため、これは 1 回限りのツールであることです。 もちろん、アドレス バーに URL が表示されないようにページをフレーム内に非表示にすることもできますが、この保護が誰からのものであるかは理解されています。 繰り返しますが、アプレットは完全にクライアントに渡され、原則として完全に研究に利用できます。

    CGI の使用に基づくソリューションには最後の欠点がありません。 単純な Perl スクリプトは次のようになります。

    #!/usr/bin/perl は CGI を使用します qw(:standard); $query = 新しい CGI; $ok = "ok.html"; $address = "悪い.html"; $login = "ログイン"; $password = "パスワード"; $l = $query->param("ログイン"); $p = $query->param("パスワード"); if(($p eq $password) && ($l eq $login)) ( $address = $ok; ) print $query->redirect($address);

    使用例:

    パスワードチェック

    最初の欠点に対処するには、URL を指定せずに、内部のどこかに隠されたページに基づいて新しいページを動的に生成できます。

    変更されたコード:

    #!/usr/bin/perl は CGI を使用します qw(:standard); $query = 新しい CGI; $ok = "ok.html"; $address = "悪い.html"; $docroot = $ENV("DOCUMENT_ROOT"); $localpath = "/materials/pagepsw/"; $login = "ログイン"; $password = "パスワード"; $l = $query->param("ログイン"); $p = $query->param("パスワード"); if(($p eq $password) && ($l eq $login)) ( $address = $ok; ) print $query->header(); open(FL, $docroot.$localpath.$address); while() ( # ここでは、その場で HTML コードを変更することもできます。 # なぜですか? まあ、それはわかりません... :) print $_; )閉じる(FL);

    使用例:

    パスワードチェック

    ご覧のとおり、ファイル URL は、同様のものが存在する場合、SSI を犠牲にして表示されなくなります (ただし、これは出力中に捕捉され、手動で処理できます)。 しかし、ここでも URL を推測する理論的な可能性は依然として残っており、ページに含まれるあらゆる種類の画像が有害な影響を与える可能性があることを忘れてはなりません (もちろん、相対パスを使用する場合)。

    最後に、アクセス パスワードを設定する最も信頼できる方法は、サーバー ツールを使用することです。結局のところ、人間がそれを行ったのは無駄ではありません。 最も人気のある Apache と、同様に人気のある IIS の 2 つに焦点を当てます :)

    IIS を使用すると、すべてが非常に簡単になります。保護は NTFS を使用して実行されますが、当然ながら、サーバー管理者以外のユーザーの能力はある程度制限されます。 考え方は次のとおりです。ユーザー IUSR_xxxx は、デフォルトですべてのサイト訪問者がそのアカウントで作業しますが、目的のファイル/ディレクトリへのアクセスは拒否されます。 その後、「プロパティ」->「セキュリティ」で明示的に指定されたユーザーのみがこれらのファイルにアクセスできるようになります。 それらをグループに結合する方がはるかに便利であることは明らかです。 ここには微妙な点がいくつかあります。

    まず、指定したユーザーにローカル ログオン権限を与える必要があります (ユーザー マネージャーの [ポリシー] -> [ユーザー権限])。次に、WWW 設定で WWW サービスの基本認証 (クリア テキスト) を選択しない場合、Internet Explorer ユーザーのみがログオンされます。 「A」で許可されています。

    認証タイプ コントロールの種類 Apache では、すべての処理が少し異なります。 保護はディレクトリ レベルで設定されます。 対応するディレクティブは、一般構成ファイル (セクション内) と .htaccess ファイルの両方に配置できます。 どちらの場合もディレクティブのセットは同じであり、他人のサーバー上の Web サイト/ページ用のスペースを借りているほとんどの人にとって、2 番目の方法の方がはるかに関連性があります。

    認証名 名前- ユーザー名とパスワードが有効な領域の名前を指定します。 これは、ブラウザがパスワード ダイアログに表示する名前と同じです。 さまざまなディレクトリにこのような名前を 1 つ設定すると、ユーザーが追加のパスワードを入力する時間を節約できます。

    認証グループファイル 名前- グループとそのメンバーの名前が保存されるファイルの名前を指定します。 その形式:
    グループ1: メンバー1 メンバー2 ...
    グループ2: メンバー3 メンバー4 ...

    認証ユーザーファイル 名前- パスワードを含むファイルの名前を指定します。 通常、これを作成するには、Apache ディストリビューションの htpasswd ユーティリティを使用する必要があります。 ただし、少なくともサーバーの一部のバージョンでは、この形式は次のようになります。
    ユーザー1: パスワードハッシュ1
    ユーザー2: パスワードハッシュ2

    パスワードハッシュは、標準の Perl 関数を使用して取得できます。
    $hash=crypt($pass,$salt);
    ここで、$pass はパスワード、$salt はハッシュの生成に関与する 2 文字の文字列です。

    したがって、新しいユーザーの追加、HTML フォームによるパスワードの変更などのプロセスを自動化することはかなり可能です。

    ユーザーが必要 ユーザー1 ユーザー2そしてグループが必要です ユーザー1 ユーザー2特定のディレクトリにアクセスできるユーザーとグループを指定できます。

    require valid-user は、システム パスワード ファイルで指定されたすべてのユーザーへのアクセスを許可します。

    ... 、ここでメソッド HTTPメソッドを定義します。

    たとえば、ネストされたディレクティブの使用を、GET メソッドと POST メソッドを使用する場合に制限します (通常はこれで十分です)。 ディレクティブは、require、order、allow、deny のようにネストできます。
    もう 1 つの便利なディレクティブは、deny とallow です。それぞれ、アクセスを拒否し、許可します。 次のようなものを適用します。
    192.168から許可

    全員から否定する

    デフォルトでは、すべての拒否が最初に実行され、次にすべての許可が実行されるため、すべてから許可すると、拒否に関係なくすべてのユーザーにアクセスが許可されます。 順序は、順序ディレクティブ: order allowed、deny を使用して変更できます。

    「deny from all」は、CGI 経由でページを保護する 2 番目の方法に適しています。ゲストブックなどのあらゆる種類のパスワードをカバーするのに最適なのは、このディレクティブです。 URLコード:
    ちなみに、ここでついでに、独立したエラー処理を示します。この場合は、コード 403、Forbidden です。 最愛の 404 (Not Found) と 401 (Unauthorized) も同様に処理されます。 これを行うには、ErrorDocument ディレクティブを .htaccess に追加するだけです。
    エラードキュメント 404 /cgi-bin/bad.pl
    エラードキュメント 403 /cgi-bin/badaccess.pl

    エラードキュメント 401 /cgi-bin/badaccess.pl

    最後の例では、次の内容を含む .htaccess ファイルを使用します。

    スクリプトは REQUEST_URI 環境変数を使用してエラー メッセージを生成するだけなので、代わりに適切なページを指定するだけで済みます。

    tgroup ファイルには 1 行しかありません - テスト: ログインテスト、tuser ファイル内 - ログイン (パスワード) とテスト (テスト) の暗号化されたパスワード。

    このページに再度アクセスすると、ブラウザはこの領域にアクセスしたばかりであることを認識し、ユーザーに不必要なパスワードの要求を行わせないことに注意してください。


    簡単に言えば、これは Web ページを保護するために必要な最小限の情報セットです。 実践が示すように、サーバーが提供するツールに基づくソリューションのみを多かれ少なかれ信頼する必要があるため (サーバーに別のホールが発見されるまで)、可能であればそれらを選択することをお勧めします。 情報セキュリティの主要な公理の 1 つは、「システムの快適さはセキュリティに反比例する」であると述べています。 これは、保護システムを選択する際に次の点を見つける必要があることを意味します。最適な比率


    保護とユーザーエクスペリエンスの複雑さ。


    一方で、保護の開発と実装には、ある程度の労力と費用が必要です。 したがって、保護の設計には合理的なアプローチを採用する必要があります。 簡単に言うと、サイトに貴重品が何も保存されていない場合、複雑で高価なセキュリティ システムを作成する必要はありません。 あなたのホームページ、中小企業の名刺 Web サイト、幼稚園の Web サイトを改ざんしようとする攻撃者は一人もいません。 前のレッスンでは、Web サーバーを使用した認証 (基本的な認証) について説明しました。 おそらくこれが最も簡単で最も簡単です安全な方法 リソースへのアクセスの制限。 ただし、このようなメカニズムの維持は、特に次の場合に非常に労力がかかります。大量の


    異なる権限を持つユーザー。 さらに、すべてのサーバーで HTTP 認証が許可されるわけではありません。

    より一般的な代替手段はパスワード保護です。 その意味は、サーバーがユーザーとその対応するログイン、パスワード、アクセス権のリストを保存することです。 初めてサイトにアクセスするとき、ユーザーはログイン/パスワードを入力してリソースにアクセスします。 サーバーはユーザーを「記憶」し、次のセッションが開かれる (ブラウザの再起動) までパスワードを要求しません。 組織パスワード保護

    すべてはプログラマーの肩にかかっています。 開発者は、ユーザー リストの保存、ログイン/パスワードの確認、セキュリティ コンテキストの保存と再利用のセキュリティを確保する必要があります。 ここでのセキュリティ コンテキストは、ユーザーを一意に識別するパラメーターのセットとして理解されます (少なくとも、これはログイン、パスワード、およびセッション ID です)。

    「ログイン」ボタンをクリックすると、フォームデータがサーバーに送信され、そこでスクリプトが入力されたログイン名とパスワードをチェックし、それらがそれぞれ「admin」と「megaPass」に等しい場合は、ログインが許可されるというメッセージが表示されます。 ログインまたはパスワードが間違っている場合、ユーザーには警告メッセージが表示されます。

    このスクリプトの最初の欠点は、GET メソッドを使用したデータ送信です。 この方法を使用すると、データはアドレスで直接送信されるため、肉眼でも確認できます。 たとえば、次のように入力した場合 正しいログインとパスワードを入力し、 アドレスバーわかります

    http://localhost/logon.php?login=admin&passwd=megaPass

    2 番目の欠点は、ユーザー名とパスワードがコードに直接ハードコーディングされていることです。 これは、新しいユーザーを追加するには、ファイル コードを常に変更する必要があることを意味します。 サイトに少なくとも 1,000 人の登録ユーザーがいる場合、ファイルがどれほど大きくなるかを想像してみてください。ユーザー リストは別のファイルに保存するのが最適ですが、できればデータベースに保存するのが最適です。 攻撃者にとって、データベースから何かを抽出するよりもファイルを盗む方がはるかに簡単です。

    3 番目の欠点: ユーザーのログイン結果は記憶されません。 ページを更新するだけで、パスワードを再度入力するよう求められます。

    そこで、これらの欠点を解消する方法を見てみましょう。

    送信されたデータを非表示にする最も簡単な方法は、POST 送信方法を使用することです。 この場合、ブラウザ自体(ユーザーからは隠されています)が必要なすべてのデータをサーバーに転送し、それを傍受することのみが可能になります。 特別番組 IT スペシャリスト、プログラマー、ハッカーの武器庫から。

    前述したように、ユーザー リストは個別に保存する必要があります。 テスト データベースにテーブルを作成しましょう。

    CREATE TABLE `smplusers` (
    `user_id` int(11) NOT NULL auto_increment、
    `user_name` varchar(50) NOT NULL、
    `user_login` varchar(50) NOT NULL、
    `user_password` varchar(50) NOT NULL、
    `reg_date` 日時が NULL ではありません。
    主キー (`user_id`)
    )

    それにいくつかのユーザー レコードを追加します。

    INSERT INTO smplUsers
    (ユーザー名、ユーザーログイン、ユーザーパスワード、登録日)
    価値観
    ("イワノフ I.I."、"ivanov-i-i"、"pass1"、NOW())、
    ("ペトロフ P.P."、"ペトロヴィッチ"、"pass2"、NOW())、
    (「シドロフ S.S.」、「シドロフ」、「pass3」、NOW())

    INSERT 演算子を使用すると、複数のレコードを一度にテーブルに追加でき、データはカンマで区切られたブロックにリストされることに注意してください。

    次に、ユーザー名とパスワードがデータベース内で直接正しくチェックされるように、logon.php を変更しましょう。







    ログインとパスワードは秘密裏に送信されるようになり、データベース内のテーブルを編集することで資格情報を簡単に変更できるようになりました。 最後のステップは、サーバーに登録の事実を記憶するように教えることです。 これを行う最も簡単な方法は、セッション メカニズムを使用することです。 必要な変更を加えてみましょう。



    ...

    サーバーはログインに成功した各ユーザーを記憶し、次回ページが更新されたときにウェルカム メッセージを表示します。

    このスクリプトは、完全に機能するものではありますが、パスワード保護を構成する例にすぎません。 入力データの検証、暗号化機能、パスワード回復、セッション終了などを追加することで、実用的なサンプルにすることができます。

    親愛なる友人の皆様、私のブログ「」に再びお越しいただき、嬉しく思います。 今日は、WordPress Web サイトのページにパスワードを設定する方法について説明します。ここではすべてが非常に簡単ですが、何のためにあるのでしょうか? 今日はこれらの質問やその他の質問に答えていきたいと思います。

    なぜページにパスワードを設定するのでしょうか?

    場合によっては、サイトの特定のセクションへのアクセスを制限する必要がある場合があります。これらのセクションには特権ユーザー向けの情報が含まれている場合があり (よく行われます)、非表示のセクションへのアクセスには料金がかかる場合があります。 料金は、1 回請求することも、サブスクリプション料金の形で (たとえば、月に 1 回) 請求することもできます。 このようにして、安全な Web サイト ページを作成し、訪問者に有料アクセスを提供できます。

    現在、インターネット上には、有料トレーニングへの参加や、特定のページへの有料アクセスを伴うサイトの収益化に関するコースの購入を提案するオファーがたくさんありますが、購入すべきではありません。 おそらくそこには新しいことは何も見つかりませんが、この記事では Web サイトのページにパスワードを設定する方法とその変更方法を完全に無料で学習します。

    有料アクセスでお金を稼ぐ原則は明らかだと思います。パスワードを設定し、支払いを受け入れ、アクセスパスワードを送信します。 これなら 購読料、その後、月に 1 回パスワードを変更し、再度支払いを徴収して、新しいパスワードを送信します。 これらすべては次を使用して自動化できます 優れたサービス e-autopay.com このサービス支払いを受け入れるという点で非常に便利です 自動メール電子商品や物理的商品、PIN コードなど、すべてをお客様のニーズに合わせてカスタマイズできます アフィリエイトプログラム, このサービスは、Azamat Ushanov、Alexander Borisov、その他多くの有名な情報ビジネスマンによって使用されていることに注意することをお勧めします。 ちなみに、e-autopay.comサービスにも実装されています。

    次に、WordPress サイトページにパスワードを設定する方法を見てみましょう。 これを行うには、もちろん、最初に目的のページを作成し、次に投稿を編集し、[公開] タブに移動して [編集] リンクをクリックする必要があります (図を参照)。

    次に、次のウィンドウが表示され、可視性、パブリック、プライベート、またはパスワード保護を選択できます。また、ホームページの最上部にページを固定することもできますが、パスワードが必要なので、目的の機能を選択してパスワードを設定します以下の図に示すように、ページの場合。

    上記のすべての手順を完了したら、適切なタイミングでページを公開するだけです。 この簡単な方法で、ブログ上にパスワード付きのページを作成し、有料または アクセスが制限されている様々な情報まで。 たとえば、私のブログでは、無料コースへのアクセスは制限されており、購読した後にのみアクセスできます。 このコース、サブスクリプションをアクティブ化すると、アクセスパスワードがメールに送信されます。すべてが非常にシンプルで、すべてが含まれています。 自動モード。 ご覧のとおり、これに関しては何も複雑なことはなく、サイトのどのページや記事にもパスワードを設定できます。

    これで、サイト上のページまたは記事にパスワードを設定する方法がわかりました。 希望 この情報あなたのウェブサイトでお金を稼ぐためのメリットと新しいアイデアをもたらします。 いつものように、この記事に関するご質問やコメントをお待ちしております。