安全なC ++コーディングプラクティス
-
23-10-2019 - |
質問
C ++で安全なコーディングプラクティスの包括的な記録を探しています。私はすでにここに存在するそのようなリストを見つけていないので、私たちはこれをコミュニティのwikiに、さらに参照するために作成するかもしれません。スタックやヒープベースのバッファーオーバーフローとアンダーフロー、整数のオーバーフローとアンダーフロー、フォーマット文字列攻撃、ヌルポインターデレファレンス、ヒープ/メモリ検査攻撃などなど、セキュリティ問題のソリューションを探しています。
NB:コーディングプラクティスに加えて、この種の攻撃を防御する安全なライブラリも言及する価値があります。
LE:コメントでMsaltersが示唆したように、この質問はC ++の2つの別々の質問に分かれています。 安全なコーディングプラクティス.
解決
本 安全なコードを書く セキュリティの問題とそれらを回避する方法を説明するのが非常に得意です。この本はしばらくの間発表されていますが、対象となるトピックのほとんどは依然として関連しています。
他のヒント
ハーブサッター「例外的なC ++」および「C ++コーディング標準」。かけがえのない。
マーシャルクライン C ++ FAQ. 。一般的な落とし穴についてのすべてを教えてくれます。無料オンライン。
この本はとても便利だと思いました CおよびC ++のための安全なプログラミングクックブック:暗号化、認証、入力検証などのレシピ
前述とは異なり、Linux(POSIX)とWindowsの両方に多くの例があります 安全なコードの作成、第2版.
ジョイントストライクファイターエアビークルC ++コーディング基準セキュリティではなく信頼性に主に適用されますが、良いスタートです。
SEI CERT C ++コーディング標準 あらゆる種類のセキュリティの問題をカバーするために特に開発されています。 CERTは、コンピューターのセキュリティインシデントを処理する専門家グループであるコンピューター緊急対応チームの略です。
キックオフさせてください
- mallocを使用して動的に割り当てられたメモリを避けてください
- (関連)可能な場合は固定サイズアレイを使用するか、C ++でインタクトを使用する
- の使用を避けてください
(void *)