質問

書き込みコードだ意識的に守りプログラムをプログラムの品質とされる可能性を避けるためのコードに使われる不などを通じてバッファオーバーフローロまたはコード注射

何を"最小"レベルの品質でまだコードについて教えてください。

役に立ちましたか?

解決

私の仕事は、コードをする結果になっております。
もし二つの主要なもの:

  1. 試験
  2. コードレビュー

その中でも、です。

他のヒント

類似abyxのチームに私が開発者とし、常にユニット試験およびコードレビューします。ほかに、どうしたらいいでしょうかを確認したいコードを取り入れる人 使用してしまいがちなコードを書の基本的な設定の方法に必要なオブジェクトで手として機能していspec思います。いを取り入れる方法としないことがあり使用する機能を提供できる非意図的に紹介する"裏口"または意図/予期せぬ利用します。

つばく後の導入方法、属性、および特性であるたversusを予測するものとしないことがあります。

されています。ている防御のためのデータが入力されたコンポーネント"または枠組み内の"コンポーネント"または枠組みの一つと考えるべきで、データが"正しい".

考えています。で呼び出し側に供給で正しいパラメーターその他すべての機能-手法をチェックincommingパラメータとします。ただし、チェックした場合のみ実行されますの呼び出し側のチェックは必要とします。なので、パラメータは"正しい"ことを通すことができ下げます。

  1. 必ず確認してくださいデータを、外部からのユーザーなど
  2. されたコンポーネント"または議定書の枠組みを必ず確認してくださいincommingます。

がある場合はバグや間違った値を使用します。何が本当に正しいものをtodo?一つだけいことを示"データプログラム"に取り組んでいるのは間違っていて、一部のように主張で利用したい高度なエラー報告とエラー回復しました。このデータは故障およびいくつかのケースで働き続けます。(注い場合はサーバーにな金型で少なくとも)

画像から送信された衛星があることができるかもしれてみて先進のエラー回復。画像からダウンロードし、インターネットにエラーのアイコン...

をお勧めしまくコードでファシストの開発環境善。

開発したい漁悪いデータ-ロジック/コードを早期に問題を防ぐためにどちらかと紙によると、後の問題の根本原因は難しい。

生産対応の問題として優雅にしていきます。な場合は復帰不可能エラー対応で、現在その情報はユーザーが行います。

例として、こちらのコードを正常化するベクトルの役割を果たします。場合飼料で不良データを開発で悲鳴を上げ、生産を返します安全性の値です。

inline const Vector3 Normalize( Vector3arg vec )
{
    const float len = Length(vec);
    ASSERTMSG(len > 0.0f "Invalid Normalization");
    return len == 0.0f ? vec : vec / len;
}

いつもの予防に努めるように注射ます。しかし、仕事をする場合は、社内イントラネットサイトのセキュリティ機能を感じように無駄なのです。まだまだいかだいします。

が一定のためのベスト-プラクティスです。最低限、データベースアプリケーションが必要で見SQLインジェクション

その他のもののようにハッシュパスワード、暗号化接続文字列。ものです。

これからによって違いますので、それぞれの願います。

幸い、さもなければ、枠組みをしています。純、多くのセキュリティ保護が付属ですのでお問い合わせ下さい。

いず守りプログラムだと思うのでも、内部アプリでユーザーにとって至福何か書いてもらえるように休憩をごアプリです。付与すいていないのかもしれません心配しようと不正行為を行うことが出来れば、思うようにお金がたいです。常にプログラムを守備するとともに、このアプリに失敗します。

テスト駆動開発助かっています。書き単一のコンポーネントとして列挙すべての可能性ケース入力経由で試験の前にコードです。これにより、まっすべての拠点とな記載 涼しい コードな使用になる可能性があります。

はんな形式か一般的に時間を見各クラスに実施されることを確保する:

  1. においても有効な状態で滞在有効な状態
  2. る方法はありません構築して無効な状態
  3. 特段の事情がない限りいなどの優雅にすることにより(このはの清掃活動や投げ)

それはその時々です。

ていただく場合真のハッキングも自分を使用して書き込みまにベストコードがないのに考えています。のコンパイラする私の友人の警告など。がんを自動的に作成する種類の地獄です。

その人の人格を否定することに使われることになり、時には、ランプのレベルの確認をしています。

  • 最小限のマジック番号
  • より良い変数名
  • 全確認-確定配列の文字列の長さ
  • プロによる契約の主張
  • null値をチェック
  • 例外によるコンテキストのコード)
  • 基本的な説明コメント
  • アクセス用のドキュメント(合perlなど)

また別の定義を守りプログラミングのことが提唱する 有効なJava によるジBloch.この著書の中で、対話の取り扱いについては変更可能なオブジェクトの呼び出し側に渡すコード例では、セッター、変更可能なオブジェクトを通過する呼び出し側(例えば、setterか).

  • のための仕掛け人たないクローンの可変オブジェクトは、店舗のクローン.このように、呼び出し側は変更できませんので、渡されたオブジェクトが破プログラムの不変量.
  • のためのsetterかに、返還不変の社内データのインタフェースです;かを返しクローンの内部データです。
  • 呼び出し時にユーザによって提供されたコールバックと内部のデータ送信に不変の表示またはクローンは、適切な場合を除き、予定のコールバックのデータをいただいた場合に検証していきます。

に持ち帰りメッセージがない場合は、外部コードでエイリアスへの変更可能なオブジェクトご使用になることを内部的には、いを持ち続けることができ不変量.

私は非常に多くの意見が正しいグをカバーするこれらのリスクに対するようなものを避ける推奨されていませんの機能(マイクロソフトマイクロソフトセC++ライブラリの少なくとも)一般的に推奨されていませんのでセキュリティ脆弱性、妥当性を検証ものを横断する外部境界線。

機能するのみというからコードを必要としない過剰なパラメータの検証で利用いただけますので呼び出し側に、外界との境界が交差した.機能というより、他の人のコードはこのような着信パラメータは無効になり、又は悪意ある。

私のアプローチへの対応力を高める露出機能は、単純にクラッシュ、立場合のみメッセージが可能です。場合は、呼び出し側できないパラメータを取得権の問題は、そのコードも修正でないます。(明らかにお客様からご提供いただいた書類のための機能です。)

コードインジェクション攻撃のみを問題にアプリケーションの場合は動きを高め、現在のユーザーです。場合にプロセスを注入できるコードには、アプリケーションから利用でき、コードを書くためのメモリ実行することができます。ることなく得ることができ、システムコードインジェクション攻撃には意味が無い。(このはなぜ使用したアプリケーションにより管理すべきでない書き込み可能に少します。)

私の経験で積極的に雇用を守りプロというわけではなくまた高品質のコードです。なく間違っているのは、必要なものを守りプログラムの種の問題がユーザー全ユーザのだがプログラムがクラッシュしていくことが、コードしなく維持し、試験等

数年前までの方針に使用主張すべてのレベルのソフトウェアのこと、ユニット検査、コードレビュー等をスピーカー変えたりケーブルの既存アプリケーション試験ンアンドスイーツは非常に大きな正の効果の質をコードです。

Java署名されたJarファイルやJAAS.

Java防止バッファオーバーフローやポインタ/スタックのwhacking排除できます。

使われないJNI.(Java Native Interface)で公開するDLL/共有ライブラリ.

署名されたJARの停止クラスローディングとセキュリティ上の問題.

JAASできるような申請を信用しなくなってきてもそのものです。

J2EEにおいて確かに限定)を内蔵のサービスをご利用いただけ役割に基づくセキュリティ.

あの負荷の一部が、セキュリティホール。

単純な回答: もよります.いすぎ防御符号化 ができ が主要なパフォーマンスの問題です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top