2017-08-29 6 views
1

私のプログラムはTCPソケットサーバーであり、コマンド応答システムによってネットワーク経由で管理する必要があります。コマンド(要求) - システムは問題ではありません。クライアントはパケットを送信し、サーバーはそれを受信して​​応答を生成します。パケットは単なる一連のバイトです。
問題は単純なアカウントシステムを作成する必要があることです。私のサーバーは、「管理者」と「シンプルユーザー」の2つのアカウントタイプを保存して管理する必要があります。したがって、私は物事を持っている必要があります:登録、認証とパスワード記憶システム。これはQt5でどうやってできるのですか?たとえば、ネットワーク上でユーザー名とパスワード(またはパスワードハッシュ)を送信するだけで、管理者アカウントを最初にサーバー上で通常の方法で作成する方法はありますか?私は厳しいセキュリティ要件を持っていませんが、理にかなった通常のシステムを作りたいと思います。単純なアカウント制御システム

+0

Qtの部分についてはわかりませんが、どのようにセッションを追跡する予定ですか? HTTPを使用していますか?これにより、ログインとセッションの処理が簡単になります。そうでない場合は、他のセッションの実装を調べることをお勧めします(多分、認証された接続のトークンを生成する...)。認証自体は[nonce-based](https://en.wikipedia.org/wiki/Challenge-response_authentication)です。 – urban

+1

簡単な方法:管理者の資格情報は、サーバー側の設定ファイルによって事前に定義する必要があります。追加の保護として、ユーザーは最初にログインしたときにパスワードを変更することがあります。もう1つの方法:多くのCMSは最初にログオンしたユーザーに完全なアクセス+インストール手順を提供します。 Btw、あなたの質問はQtとは全く関係ありません:) –

+0

@DmitrySazonovありがとう、とても良いアイデア!あなたはこれを答えとして書くことができ、私はそれを受け入れます)。これは、ローカルネットワーク内のいくつかのデスクトップPC間のシステムです。今度は、システムをあらかじめ定義された設定ファイル+強制的に管理者にして、最初のログイン時にパスワードを変更します。しかし、おそらくコンピュータ上の設定ファイルで十分でしょう。 –

答えて

1

最も単純な方法:管理者の資格情報は、サーバー側の設定ファイルによって事前に定義する必要があります。追加の保護として、ユーザーは最初にログインしたときにパスワードを変更することがあります。もう1つの方法:多くのCMSは最初にログオンしたユーザーに完全なアクセス+インストール手順を提供します。

-1

この管理リンクの上にパスワードを交換するため、QSslSocketを使用してセキュリティ保護された通信レイヤー(http://doc.qt.io/qt-5/qsslsocket.html)を取得します。ここQt5とコードのクライアント部分の例がある

:サーバー側でhttp://doc.qt.io/qt-5/qtnetwork-securesocketclient-example.html

は、あなたのサービスに特化し、定義済みの未使用ポートのソケットを、受け入れます。

ここでは、管理者アカウントに対応するランダムな秘密パスワードでログインを決定し、QSslSocketに基づいてこのパスワードを安全なチャンネルの上に送信するプログラムを作成するだけです。リモート管理を受け入れる前に、サーバーはパスワードを確認する必要があります。

このように、管理者はサービスを使用する前に作成する必要があります。いくつかの暗号手段(OpenPGP、S/MIMEなど)に基づいて、秘密のメール交換を使用して、管理者にパスワードを提供することができます。

+1

答えはありません。 「管理者アカウントを作成する方法」 - > "QSslSocketを使用する"。 –

+0

質問タグはqtcpsocketでした。 「[...]?私は厳しいセキュリティ要件を持っていませんが、理にかなった通常のシステムを作りたいと思っています。 =>私の答えは "Use QSslSocket" –

関連する問題