5

私はどこかにこれの複製がなければならないと確信しています、しかし私はそれを簡単に見つけることができませんでした:

それ自体がフォーム認証を使用するasp.netアプリケーションを考えると、「群衆」にいない人がサイトをまったく見ることができないように、公開されているデモサイトを保護するためのベストプラクティスは何ですか?

  • IPフィルタリング?
  • フォーム認証にラップされた基本認証?私はこれに頭をぶつけて、それを機能させることができないようです:/
  • VPN?
  • そもそも「デモサイトを公開することは有害だと考えられている」?
4

5 に答える 5

3

Web.Config を活用することを検討しましたか?

匿名アクセスが必要な領域の場合:

<location path="unsecured_path">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

または、匿名ユーザーを拒否するには

<location path="secured_path">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>

匿名ユーザーを拒否する場合は、ユーザーを認証する方法が必要になります。匿名でヒットしようとするとチャレンジ応答を返す Windows セキュリティによって、またはユーザーにきれいなログイン ページを提供することによって。

于 2012-05-15T14:53:11.850 に答える
2

通常、「デモ サイト」は基本認証で保護されています。たとえば、資格情報のプロンプトに変わる基本認証チャレンジでブラウザに 401 を返します。理論的には、これが完了すると、サイトの残りの部分は通常のものになります。必要に応じて認証を形成します。

ASP.NET でのこのアプローチの難しさは、デフォルトの FormsAuthenticationProvider が 401 を「ログイン ページへの 302 が必要」と解釈するように組み込まれているという事実にあります。それを前提に、フォーム認証とベーシック認証を同時に実現するのは至難の業です。

また、IIS に組み込まれている基本認証は、Windows を認証ストア (Active Directory またはローカル Windows アカウント) として使用します。別の資格情報ストアを使用するようにすることは、「すぐに」行うのは簡単ではありません。

http://custombasicauth.codeplex.com/は、私が注目している非常に興味深いプロジェクトです。これは、別のプロバイダー ストアから基本認証を装備できるようにするカスタム基本認証プロバイダーを提供します。ソースをhttp://custombasicauth.codeplex.com/SourceControl/changeset/view/53965#183990およびhttp://custombasicauth.codeplex.com/SourceControl/changeset/view/53965#183995で開きます。Base64 でエンコードされたヘッダーを抽出し、それを ASP.NET メンバーシップ プロバイダーと比較しているだけであることがわかります。それを前提として、同様の HttpModule を作成して、ヘッダー データを AppSettings に保存されているユーザー/パスと比較し、そのモジュールをデモ サイトに含めることができます。魔法のソースは、Authenticate で 401 ステータスを設定しないことです。EndRequest で設定します。FormsAuthenticationModule が終了すると、「401 から 302 へのログイン ページ」になります。唯一の欠点は、<location>タグは、フォーム認証または基本認証で使用する必要がありますが、両方で使用する必要はありません。ユースケースが真に「デモ サイト全体を保護する」場合は、Basic Auth モジュールを「すべて実行する」ようにコーディングするだけで十分です。私はまさにこれをやっている方法の約2/3です。完成したら、かなりクールになったので、おそらく GitHub に投稿します。残念ながら、テクニックはそれほど難しくなく、おそらく解決策の説明で十分です。

また、ハンズオフのノーコード ソリューションが本当に必要な場合は、http://custombasicauth.codeplex.com/をインストールしてください。IIS できれいな構成ウィンドウを表示することもできます。:D

于 2012-05-20T06:19:46.423 に答える
1
  • IP でフィルタリングできます。バックエンド管理システムでこれを行ったことがあります。私の場合、唯一のユーザーが静的 IP を持っていたので、これはうまくいきましたが、私が期待するほとんどの人はこれを持っていないので、アクセスを許可するために常に微調整を続ける必要があります.

  • IIS のいくつかの設定を使用して、追加レベルの認証を追加できます (これを行う方法は Google に依頼する必要があります)。ユーザーはサイトを表示するために一度ログインし、ログイン画面でもう一度ログインする必要があります。

  • ここで頭に釘を打ちます-人々に見られたくない場合は、インターネットに載せないでください.

上記に基づいて、私の答えは、何もせずにログインシステムに依存するか(結局のところ、公開されているのはログインページだけです)、公開しないでください-何らかのVPNを使用します.

于 2012-05-11T14:15:06.317 に答える
1

サイトに 80 以外の別のポートを使用してみてください。本当に人々に知られたくないのであれば、それは世界で最も安全なものではありませんが、あいまいさによるセキュリティであることは間違いありません. フォーム認証の使用が妨げられることはありませんが、http トラフィックと https トラフィックの間を適切に移行するには、おそらく少し追加の構成が必要になるでしょう。

したがって、サイトがhttp://test.orgで、デモ サイトもhttp://test.org:9666になるように設定した場合、サイトへの通常のトラフィックは非デモ サイトにヒットします。明確ではないかもしれませんが、アイデアが有意義に伝わることを願っています。

于 2012-05-14T15:38:19.270 に答える
0

Apache .htacces および .htpasswd 構成に精通している場合は、http: //www.helicontech.com/ape/ (最大 3 つのサイトまで無料) を参照してください。Helicon Ape は、htacess/htpasswd 機能を実装する IIS プラグインです。

非常に単純なパスワード メカニズム。「.htpasswd」を使用すると、username:md5 パスワード ハッシュを含む単純なテキスト ファイルを作成してアクセスを制御できます。自分でパスワードを MD5 するか、http://aspirine.org/htpasswd_en.htmlなどのオンライン サイトを使用して生成することができます。例:

apple:$apr1$4SZNOvdK$P7b6AkKVw.gXfdxlcvENp1
orange:$apr1$fvcwHIlc$OF7Mkhv8JfELDJnRmsku7/
banana:$apr1$IoSJc9GM$xtSY4nI3KCnTtjWKwxhmx/

アクセスするためのユーザー/パスは次のとおりです。

apple:sauce
orange:juice
banana:split
于 2012-05-16T04:22:22.917 に答える