Cの初心者として、Cプログラマーが慣れているはずの基本的なセキュリティのヒントを知りたい。厳密にCを参照してください。Cで回避する基本的なセキュリティ上の間違い
答えて
主な問題はbuffer overflowだと考えてください。 読み込みの最大バイト数を指定せずに、fgetsやscanfなどの関数を使用して発生する可能性があります。割り当てられたバッファより大きい悪意のある入力文字列がスタック内のリターンアドレスを上書きして、提供された攻撃の実行を引き起こします。
トピックはかなり大きいですが、最初はセグメンテーションフォルトとバッファオーバーフローを避けることができます。
これは目的です。それを達成する方法を説明する必要があります。 :) –
最も明白なのは、バッファオーバーランです。 strcpy
の代わりにstrncpy
を使用してください。
'strncpy()'は万能薬ではありません。ヌル終了文字列を保証するものではありませんので、注意深く使用する必要があります。 –
'strncpy'は、大部分のプログラマが単に使うべきではありません。誰がそれを使用すべきかを区別する方法を除いて、あなたはそれを使用するべきではありません。 :-) –
- 1. スマートカードの基本的なセキュリティ上の問題
- 2. この基本的な方法Javaで何が間違っていますか?
- 3. 慣れない基本的なC++コード
- 4. Javascriptの基本的なアニメーション回転スティール
- 5. 基本的なC++再帰
- 6. setとdidSetの基本的な違いは何ですか?
- 7. ToString()とConvert.ToString()の基本的な違いは何ですか?
- 8. jobconfとjobの基本的な違いは何ですか?
- 9. 私の基本的な電卓には何が間違っていますか?
- 10. CoffeeScriptの「拡張」とBackbone.jsの「拡張」との間の基本的な違い
- 11. 基本的にC
- 12. [C位】基本的
- 13. 基本的な目的C文法
- 14. ANTLRの使い方とよくある間違いの回避
- 15. C++本とクラス間のクラスの違い::
- 16. httpの基本的なセキュリティ設定の問題:IllegalArgument
- 17. C++のテストケースの基本的なstring-diff
- 18. C++の基本的なコーディングの問題
- 19. 基本的な質問との違い@アクティブなレコード
- 20. 基本的なセキュリティを備えたREST Webサービス用のAndroidクライアント
- 21. C++の基本的な多態性
- 22. 基本的なキャスティングの質問(C#)
- 23. 基本的なCプログラムのスタック操作
- 24. C++の基本的な継承
- 25. 基本的なCプログラミングの質問
- 26. クライアントサーバーソケットCとの基本的な通信
- 27. C - 基本的なポインタの質問
- 28. Springセキュリティの基本設定
- 29. SpringBootセキュリティでOPTIONSの基本的なHTTP認証を無効にする方法
- 30. オーバーラップ間隔での基本的な間隔の検索
*セキュリティ*の意味を明確にすることはできますか? – Exa
完全な答えはおそらくC++の仕様自体と同じくらい長くなるでしょう。 –
CまたはC++についてですか?いずれにしても、その範囲はかなり広い。 – Cubbi