問題タブ [ifs]

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 投票する
1 に答える
136 参照

bash - bash: `read` は IFS を尊重していないようです

テキスト行をフィールドに分割するときに使用するIFS区切り文字を設定すると変更されるという印象を受けましたが、明らかに何かが欠けています:read

パースを 3 つのフィールドとしてIFS=','作成しないのはなぜですか?readdd,ee,ff

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

c - LD_PRELOAD と IFS を使用した SUID ファイルの悪用

LD_PRELOAD関数のオーバーライドによるIFSの悪用と権限昇格について読んでいます。これらは 2 つの完全に異なる質問ですが、一緒に投稿することにしました。問題がないことを願っています。これらは両方とも非常に古いものですが、権限のエスカレーションにまだ使用できると言われているので、ぜひ調べてみたいと思います. しかし、私はいくつかの問題に遭遇しました。

それでは、SUID ファイル /tmp/suid を作成することから始めましょう。

これは を呼び出します/bin/date。内部のフィールドセパレーターを変更し、ファイルをだまして、現在保持している特権で別の何かを実行させることができるという考えです。これは、 binという名前の新しいファイルに、攻撃者がカスタムの場所に配置した悪意のあるコードを含めることによって実行できます (または実行できますか?) 。次に、$PATH変数を変更して、悪意のある偽のバイナリが配置されているカスタム パス内で場所が最初に検索されるようにします。次に、内部フィールドセパレーターを「/」に変更すると/bin/date、プログラムを実行する代わりに/tmp/fakepath/bin引数 date を使用して実行され、特権エスカレーションがトリガーされる可能性があります。

dankalia.com に記載されている方法を試してみると、失敗します。/bin/date代わりに実行されます。コンソールに入力するだけでbin date、悪意のあるバイナリが開始されますが、.xml を介して呼び出された場合は開始されません/tmp/suid

脆弱性にはパッチが適用されており、単に IFS 変数を無視しているだけだと思っていましたが、stackoverflow の投稿に興味を持ちました。( C: IFS System() の脆弱性)。これが機能するかどうか、および私が間違っていることを誰かが確認できますか? ありがとう。

についてはLD_PRELOAD、かなりシンプルにします。

次のコマンド ラインを使用してコンパイルします。

puts次に、プリロードのトリックで関数をオーバーライドします。

これは非常にうまく機能します。ただし、SUID ファイルを処理する場合や特権昇格について話している場合、これは起こりません。LD_PRELOADSUID ファイルでは適切に機能しませんが、それには正当な理由があります。「できるけど難しい」とよく言われます。アイデア?

事前に感謝し、長い質問をして申し訳ありません.

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

bash - bash スクリプトで複数文字の区切り記号を使用する

データが次の形式のテキストファイルがあります。

この種のファイルは複数あります。これらすべてのファイルを読み取り、次の形式のエントリを含む csv ファイルを作成する必要があります。

ここで、各行は 1 つの txt ファイルに対応します。
このデータから CSV ファイルを生成する bash スクリプトを作成しています。
テキストファイルから数字だけを読みたい。
私が使用しようとした最初の行について

しかし、「:」とともにスペースを区切り文字としても使用して行を分割し
ます

150 の前に追加のスペースが印刷されましたが、これは望ましくありません。
どうすればいいですか?
また、2 行目では「is」を区切り文字として使用したいと考えています。許可されていますか?
ありがとう

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

bash - bashのクエリ文字列からの連想配列?

Bashでクエリ文字列から連想配列を取得するにはどうすればよいですか? - 試み:

0 投票する
0 に答える
105 参照

c++ - ファイル、配列、およびカウンターを使用する C++

宿題の質問があり、そのほとんどを終えましたが、今は完全に立ち往生しています。割り当ては、コンサートの残り座席数とチケットを購入した人数を表す 2 列の数字で構成されるファイルを読み取ることです。例: 120(定員) 90(購入したチケット) 140(定員) 155(購入したチケット) コンサートは売り過ぎになる可能性があるため、ファイルを読み、ショーの数を把握する必要があります: 70% 未満、70% から 90 の間% フル、90% から 100% フル

両方の列を 2 つの配列にロードしました。これは私に問題を引き起こしているコードの一部です:

私のカウンターが0に出力しているため、私が問題を抱えているのはパーセンテージです。私が知りたいのは、すべての行のカウントをどのように保持するかだけです。たとえば、5 つの行がすべて 70% 未満であるとします。ファイル全体を読み取って、各行の後にカウンターに追加するようにするにはどうすればよいですか。

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

linux - 一重引用符でIFSを使用してLinux bash文字列を分割

Linux bash での IFS 文字列の分割と一重引用符のエスケープに関する多くの質問への回答がありますが、2 つのトピックを結合するものは見つかりませんでした。問題に遭遇すると、以下のようなコードで(私にとって)奇妙な動作が発生しました。

(bash スクリプト ブロック)

何が起こるかというと、配列のecho要素には実際に必要な部分文字列が含まれているため (したがって、\' IFS が正しいと思われます)、forループはスペースで分割された文字列を返します。

同じ配列 (または私の考えでは同じ配列のように見えるもの) がこのように動作する理由を誰かが理解するのを親切に手伝ってくれますか?

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

bash - bash の奇妙さ: ヒアドキュメント内の異なる動作

bash スクリプトで奇妙な問題が発生しています。それを再現するための最小限のコードは次のとおりです。

予想される出力は次のとおりです。

しかし、私は得る:

ここで何が欠けていますか?

更新: 私の Mac (3.2.48) の bash は期待どおりに動作します。私のdebian安定版(4.2.37(1)リリース)のbashは、説明されている奇妙さをもたらします。

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

shell - シェル スクリプトの IFS 値の設定解除

IFS私のユースケースでは、 の値を既知の区切り文字 ( )に変更したいと考えています-。私は次のことを試しました:

たとえば-a b -c d、入力文字列として使用する場合、出力は

しかし、私が得るのは

私はオンAIXです。

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

arrays - 文字列が配列にうまく分割されないのはなぜですか?

git show出力を配列に読み込む bash スクリプトがあります。

まず、次のステートメントで文字列を作成します。

これにより、必要なパターンが得られます。

結果の文字列には、予期しない場所に文字が含まれていないことを確認できます。|

次に、 Split string into an array in Bash で想定されているように、文字列をフィールドに分割します。

を見るとFIELDS、最初の 2 つの要素だけが満たされていますが、他の要素は空です。

私は何を間違っていますか?最後の 3 つの配列要素が空なのはなぜですか?