7

私は Web 開発者であり、セキュリティを非常に意識しており、Web アプリケーションを可能な限り安全にしようとしています。

C# で自分の Windows アプリケーションを書き始めたにもかかわらず、自分の C# アプリケーションのセキュリティをテストすることになると、私は本当に初心者にすぎません。

独自の Windows アプリケーションをハックして安全なコードを作成する方法について、誰かが良いチュートリアル/readme を持っているかどうか疑問に思っています。

4

6 に答える 6

5

Michael Howard の本は良い出発点です。

ここには、Michael Howard のブログからのリンクや興味深い記事がたくさんあります。

脅威の評価、リスク、ASP に関する Microsoft の興味深いパワーポイント プレゼンテーションがここにあります

于 2009-02-06T10:29:03.537 に答える
2

これはあなたにとって非常に難しいことであり、間違った角度から問題に取り組んでいると思います。任意のサイズのアプリケーションを作成している場合、自分のソフトウェアを破壊する特定の方法を探して、最後にセキュリティに対処しようとすることはほとんど不可能です。

これにはいくつかの理由があります。あなたはすでに自分のソフトウェアについて特定の方法で考えています。あなたはそれと相互作用する特定の方法を考え、それを最大限に活用する方法を知っています. それを悪用する方法について考えることはありません。これは、よく知っているソフトウェアでは難しいことです。

もう 1 つの問題は、この時点でのタスクが大きすぎて対処できないことです。見つけた問題は、他の多くの問題を引き起こす可能性があります。システム全体のセキュリティ チェックは、十分な粒度ではありません。

あなたがすべきことは、ソフトウェアを書くときにセキュリティについて考えることです。ベスト プラクティスを学び、作成する各メソッドとクラスをセキュリティの観点から検討してください。これは単体テストと密接に関連しています。プログラムのこの特定の部分を壊す可能性のある入力を検討してみてください。そして、そのレベルでそれらに対処します。

その後、セキュリティ上の懸念に気付いた場合は迅速に対応することが重要だと思います。

于 2009-02-06T10:43:52.053 に答える
2

バッファオーバーフロー、コードインジェクション、セッションハイジャックなどを防ぐためのすべての明白な答えとは別に. アル。あなたのソフトウェアをハッキングする方法は、自分が防ぐ方法を知っていることしか考えられないため、コード/ソフトウェアをチェックする誰かを見つける必要があります。自分のソフトウェアをハッキングする方法が見つからないからといって、他の誰もできないというわけではありません。

于 2009-02-06T10:24:23.437 に答える
1

私自身の経験を通して出会った小さなこと。

  • 動的 SQL を使用しないでください。SQL インジェクションに対して脆弱になります。代わりに、パラメーター付きの SQL クエリを使用してください。
  • user_id = 1、2、3 などの増分 ID を持たず、それを URL、something.aspx?user_id=1 で使用すると、次の ID とセッションの希望を推測できます。アカウントやその他の機密情報についても同様です。
  • XSS (クロス サイト スクリプティング) に注意してください。ユーザー入力を受け入れて直接保存する場合は、名前などに alert() を挿入できないようにしてください。

これは決して完全なリストではありません。私が最近遭遇したものだけです。

于 2009-02-06T12:43:42.173 に答える
1

Ross Anderson のSecurity Engineeringの本を読むよりも、はるかに悪い結果になる可能性があります。初版は PDF としてダウンロードでき、読みやすくなっています。私は第 2 版を読んでいませんが、より良く、より多くの特典が含まれていると思います。

これは、セキュリティを破る方法ではなく、最初からセキュリティを組み込む方法を説明する本であることに注意してください。ただし、さまざまなセキュリティの欠陥を説明することで、どこから始めればよいかについての良いアイデアが得られるはずです。

于 2009-02-06T10:50:26.487 に答える
0

Win フォーム アプリケーションを保護するには、アプリケーションを開いて、ラムダ ユーザーがすべきでないことをすべて実行してください。説明します:

yes「enterまたは」と言う場合はno、AZ、0-9 を試してください。これは、一部のユーザーが興味深いスタック トレースを見つけようとするためです。したがって、バリデーターをあらゆる場所に配置してください。

データベースへの接続に注意してください。ただし、Web 開発者の場合は、私よりも注意する必要があります :)。

最も難しい部分は、メモリ リークなどに注意することですが、それは大規模なアプリや十分に開発されていないアプリの場合です。

于 2009-02-06T10:25:27.007 に答える