問題タブ [challenge-response]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1183 参照

php - AJAX/PHP チャレンジ/レスポンス ログイン

私は新しい Web プロジェクトに取り組み始めました。今回は、ユーザー認証の処理方法についてもう少し考えてみようと思いました (以前は MD5 ハッシュ化されたパスワードのみを使用していました)。簡単でやり過ぎのない解決策を求めてウェブの隅々まで検索したような気がしますが、次のことを実装できるかどうか疑問に思っています。

  • クライアントはユーザー名とパスワードを入力し、「送信」を押します

  • 送信時に、ランダムなトークン/ノンス/シークレット/パスフレーズを要求する AJAX 要求がサーバーに対して行われます。

  • サーバーはナンスをクライアントに返し、そこでパスワードとナンスでハッシュが作成されます

  • クライアントは、認証が行われるサーバーにユーザー名とハッシュ (パスワード + ノンス) を送信します。

私の質問は次のとおりです。

  1. AJAX がサーバーにナンスを要求し、サーバーがハッシュが転送されるのを待機させることは可能ですか? ( async: false かもしれません? スニペット/例を自由に提供してください ) 私が見る唯一の他の代替手段は、 nonce を非表示フィールドに保存することであり、それはあまり好ましくないようです。

  2. これにより、セキュリティのレベルが追加されますか?

  3. そうでない場合、他にどのようなオプションがありますか? 以前のようにパスワードをクリア テキストで送信する必要がありますか?

注: 安全なサイトを実現する唯一の方法は HTTPS/SSL であると多くの人が言いたがるのも承知していますが、このプロジェクトでは少数のユーザーをすべて私が手動で作成することを想定していないため、金融取引やその他の機密データの交換などの安全な情報はありません。ログイン中のパスワード/データを保護するための合理的な手段が必要なだけです。この場合、MITM やその他すべての脅威は私にとって問題ではありません。なぜなら、a) そこにいるすべてのハッカーの大半は、私の小さな私的使用のみのプロジェクトに興味がないからです。b) 計算されたコストデータ損失またはセキュリティ違反は、SSL 証明書の購入を保証するのに十分ではありません

意見やアドバイスをいただければ幸いです (けちな新人であると私を叱りたい人からでも;))

0 投票する
1 に答える
39 参照

security - サーバーが無効なクライアントを検出する方法

サーバー、つまり複数のクライアントの中央サービスとして機能するリモート ホストが、Blizzard の Warden に似た悪意のあるクライアントや無効なクライアントを検出するにはどうすればよいでしょうか。何らかの方法で、これらの種類のソフトウェアはクライアントに特定の情報をときどき要求しますが、非公式のクライアントから簡単に偽造することはできません。

私が疑問に思っているのは、クライアント側からのリバースエンジニアリングが困難または不可能になるように、そのようなメカニズムをどのように実装できるのでしょうか? オープン ソース クライアント ソフトウェア (クローズド ソース サーバー) にそのような手法はありますか?

0 投票する
1 に答える
638 参照

javascript - Javascript イージー コーダーバイト チャレンジのトラブル

私はこの質問に答えようとしています:

JavaScript 言語を使用して、関数 SimpleSymbols(str) に渡された str パラメーターを取得させ、文字列 true または false を返すことによって、それが受け入れ可能なシーケンスであるかどうかを判断します。str パラメーターは + 記号と = 記号で構成され、その間に複数の文字が入ります (つまり、++d+===+c++==a)。文字列が true であるためには、各文字が + 記号で囲まれている必要があります。したがって、左側の文字列は false になります。文字列は空ではなく、少なくとも 1 つの文字が含まれます。

これが私の解決策です:

0 投票する
1 に答える
768 参照

python - 単利計算機で避けられない while ループ

/r/DailyProgrammer の課題番号 2、簡単なhttps://www.reddit.com/r/dailyprogrammer/comments/pjbj8/easy_challenge_2/ を解決しようとしていました。関数と一連の関数を使用して Python でこれを実行しようとしています。ネストされた if-elif-else のコードは次のとおりです。

問題は、有効な数値を入力するか「n」を入力するかにかかわらず、最終的な金額の値を入力するように求められると、常に有効な最終的な金額を求める無限ループに陥ることです。if または elif に入らないのに、避けられない while ループに直接入る理由を知りたいです。

0 投票する
1 に答える
471 参照

c# - 単純なチャレンジとレスポンスのパスワード

私が書いているプログラムでは、ユーザーがコードを実行する前に管理者から応答パスワードを要求される必要があり、動的です (同じチャレンジではありません)。チャレンジされた情報は短く、カジュアルなユーザーが電話で他の誰かに読むことができるものである必要があります.

私は研究を行ってきましたが、そこにある情報のほとんどは、核情報などを保護していないため、この場合には必要のない、より複雑な高度なセキュリティアプローチに関するものです. 私が見つけた他のことは、x を提供し、x + y = z によって計算される z の答えを与える非常に単純なものでしたが、それは単純すぎます。

私が回避しようとしている解決策: 暗号化されたキーを提供することは、他の人に口頭で伝えて応答コードを取得することが非常に困難です。

この種の課題を提供するソリューションは既に存在しますか? それとも、ランダムな文字の長い文字列で立ち往生しますか?

アップデート:

管理者には、ユーザー情報に関する情報はありません。単純な数式が存在する場合、単純な数式ではない単純なアルゴリズムを探しているだけです。ユーザーのチャレンジは、管理者が応答値を提供するために使用できるアルゴリズムを介して自動生成されます。英字または数値にすることができますが、小さくて単純でなければなりません。