ネットワーク接続操作の順序が正しくありません
接続手順の順序が誤っているか手順が抜けているためソケットが正しく確立できない
説明
この欠陥は、ネットワーク接続上の操作が接続ライフサイクルの不適切な時点で実行された場合に発生します。
リスク
データの送受信先のソケットの接続が正しくないと、予期しない動作や機密情報の開示の原因となることがあります。
ソケットを正しく接続しない場合や接続を誤って変更した場合、予想とは異なるポートに機密データが送信される可能性があります。また、正しくないソケットから予期しないデータを取得することもあります。
修正方法
ソケット接続中および通信中に、各呼び出しの戻り値とデータ長をチェックします。
情報の読み取り、書き込み、送信または受信の前に、ソケットを次の順序で作成します。
接続指向サーバー ソケット (
SOCK_STREAM
またはSOCK_SEQPACKET
) の場合:socket(...); bind(...); listen(...); accept(...);
コネクションレス型サーバー ソケット (
SOCK_DGRAM
) の場合:socket(...); bind(...);
クライアント ソケット (接続指向またはコネクションレス型) の場合:
socket(...); connect(...);
例
結果情報
グループ: セキュリティ |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: BAD_NETWORK_CONNECT_ORDER |
影響度: Medium |
バージョン履歴
R2015b で導入