問題タブ [taint-checking]

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 に答える
123 参照

perl - 文字列の汚染を除去するための perl IO イベントハンドラ

Perl コードでイベント ハンドラーを作成して、すべてのファイル/ディレクトリ/システム ベースの呼び出しをインターセプトし、ジャスト イン タイムで入力の汚染を除去するにはどうすればよいですか。

スクリプトには多くの IO アクセスがあり、汚染を除去するための手動コードを追加するのは面倒です。

これは、サードパーティの CPAN モジュールをインストールする必要なく実行できますか?

0 投票する
1 に答える
436 参照

perl - 以前は汚染されていなかったデータが再び汚染される可能性はありますか?

ここにはちょっとした謎があり、根本的な原因をよく理解していません。スクリプトから unlink を呼び出そうとすると、「-T スイッチを使用して実行中に unlink で安全でない依存関係が発生しました」というメッセージが表示されます。これは Perl が私が汚染されたデータを使おうとしていると言っているということを意味していることに気付いたので、それはミステリーではありません。謎は、このデータが問題なくディスクに保存された別のスクリプトで、以前は汚染されていなかったということです。

これがその方法です...最初のスクリプトは、次を使用してバイナリファイル名を作成します

$adID は localtime(time) 関数を使用してスクリプト自体によって生成されるため、汚染されるべきではありません。$item_photo は汚染チェックの前に $adID と $extensioncheck を使用して再割り当てされるため、新しい $item_photo は汚染されていません。$item_photo自体は、スクリプトの後半で自分自身をリンク解除しても問題ないため、これを知っています。$item_photo は、リンク解除機能を使用して投げられる前に、ImageMagick を使用して他の 3 つの画像ファイルを作成するのに十分な時間だけ使用されます。$item_photo の ImageMagick 処理で作成される 3 つのファイル名は、このように単純に作成されます。

パスは、URL を作成するために新しいファイル名の先頭に追加され、スクリプトの先頭で定義されるため、同様に汚染されることはありません。これらのファイルの URL はこのように生成されます。

次に、すべてが汚染されていないことを知って、それらを記録に書き込みます。

厄介な部分が来ます。2 番目のスクリプトでは、これらのファイルを読み取り、リンク解除機能を使用して削除します。ここで、「Insecue 依存関係」フラグを取得しています。

データが安全であることを知っていれば、再び汚染を除去したり、吹き飛ばしたりできることはわかっていますが、それは重要ではありません。私が望むのは、なぜこれが最初に起こっているのかを理解することです。以前は汚染されていなかったこのデータが、現在汚染されていると見なされていることを理解していないからです。ハックを書いて修正するのではなく、これを本当に理解したいので、この接続が欠けている場所を啓発する助けがあれば、本当に感謝しています。

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

perl - EDITOR などの環境変数をサニタイズするにはどうすればよいですか?

次のコードがありますが、環境変数をサニタイズする必要があると考えていますが、どのようにサニタイズする必要があるのか​​ わかりません。サニタイズできる量にはおそらく限界があると思いますが、どうすればよいでしょうか。

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

regex - Perl: ?: 演算子を使用すると予期しない一致変数が発生する

Perl でいくつかの変数を untaint しようとすると、次のコードがうまく機能します。

上記の例では、有効であれば $1 に $year が含まれます。ただし、?:演​​算子を使用する場合、有効な場合、$1 には「1」が含まれます。

私がどこに問題があるのか​​ 誰にもわかりますか?なぜこれが起こっているのか混乱しています。このマシンでのみ発生しています。というか、私は ? を正常に使用しました。年の適切な一致変数を返すための演算子。このコードを他のマシンでまだ試していません。

0 投票する
1 に答える
5483 参照

ruby - 汚染されたオブジェクトとは何ですか?いつ汚染を解除する必要がありますか?

Rubyオブジェクトを汚染する必要があるのはいつですか?また、汚染を解除する必要があるのはいつですか?汚染されたオブジェクトの概念により、Rubyスクリプトはどのようにセーフモードで実行されますか?誰かがこれについて詳しく説明して、いくつかのコードスニペットで概念を明確にすることはできますか?