問題タブ [defensive-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
51 参照

django - デフォルトでセキュアな django ORM レイヤー --- どうやって?

私は、他のすべてのクライアントのグラフとは完全に分離されたオブジェクト グラフを各クライアントに提供する Django ショップを運営しています。データは適度に機密であるため、あるクライアントから別のクライアントに漏洩したり、あるクライアントが別のクライアントのデータを削除または変更したりしたくありません。

デフォルトでセキュリティ要件に準拠するコードを記述し (厳密な保証は必要ありません)、必要に応じてオーバーライドできるようにコードを構成したいと考えています。

私の主な恐れは、 aに を追加するのをTwig.objects.get(...)忘れていることです。これはすぐにエラーが発生しやすく、複雑になります。client=request.clientLeaf.objects.gettwig__client=request.client

自分の物忘れを回避する良い方法は何ですか? これを考えなくて済むようにするにはどうすればよいでしょうか。

0 投票する
5 に答える
14850 参照

java - コピー コンストラクターとディフェンシブ コピー

コピーコンストラクタとは?

誰かが防御的コピーの原則と一緒に理解するのに役立つ小さな例を共有できますか?

0 投票する
2 に答える
419 参照

c - メニューの防御プログラミング。どのタイプの入力が必要ですか?

整数として入力する防御的なプログラミングをしようとしましたが、文字を入力するとプログラムは無限ループに陥ります。次に、文字として入力するように切り替えましたが、ループが 2 回行われます。1 回は間違った文字で、もう 1 回は行末のキーストロークです。

一度だけループを取得する方法はありますか?

コード:

0 投票する
4 に答える
75 参照

java - RuntimeExceptionsのキャリースロー宣言

RuntimeExceptionをスローできることを宣言する別のメソッドまたはコンストラクターを内部で使用するメソッドまたはコンストラクターがあるとします。

この場合、たとえば必要な前提条件が満たされない場合、RuntimeExceptionがスローされます。

Q:引数が例外をスローする可能性がある場合、ラッピングメソッド/コンストラクターは同じ例外を宣言する必要がありますか?

0 投票する
4 に答える
1980 参照

java - グッドプラクティスとは?コピー コンストラクターまたは防御的なコピー メソッド

クラス Graph があり、そのグラフのコピーが必要です。グラフ オブジェクトの内部を変更します (例: エッジの削除など)。グラフを実装するには 2 つの方法があります。

  1. コピー コンストラクター
  2. 「getGraph() { return new Graph(this)}」というメソッド。このメソッド getGraph は防御コピーを実行できます。

私の理解では、コピー コンストラクターの唯一の利点は、自由にコピーできることです。これは、グラフ オブジェクトを変更したくない場合、「getGraph」で防御コピーを行う必要がないことを意味します。

ここで私の質問に戻ります。

  1. コピー コンストラクターを使用する方が良いですか、それとも self オブジェクトのコピーを返す関数を使用する方が良いですか?
  2. なんで ?
0 投票する
2 に答える
74 参照

java - スーパーファーストを回避する

ここでAsciiCheckerは、テキスト形式でのマトリックス指定を有効にします。

呼び出しで行列引数を使用できるようにする必要がありisCoveredます。フィールドを使用する前にフィールドを初期化した場合、足を撃つ方法を教えてください。

0 投票する
3 に答える
334 参照

postgresql - このコードはどのように SQL インジェクションを受けやすいのでしょうか?

ここでPostgreSqlのドキュメントを読んでいて、次のコードスニペットに出くわしました:

ドキュメントには、「この方法は、データ値をテキストとしてコマンド文字列に挿入するよりも望ましいことが多い: 値をテキストに変換したり戻したりする実行時のオーバーヘッドが回避され、 SQL インジェクション攻撃を受ける可能性がはるかに低くなります。引用やエスケープの必要はありません。」

このコードが SQL インジェクションの影響を受けやすいことを教えてください。

編集:私が扱った他のすべてのRDBMSでは、これによりSQLインジェクションが完全に防止されます。PostgreSql では何が異なって実装されていますか?