3

そのため、bash スクリプトを作成する場合は、ファイル名の特殊文字、スペース、引用符、改行などに注意する必要があることがわかっています。一部のファイル名を表示/エコー/印刷するイベントがbashで危険になる可能性があることをどこかで読んだことを覚えています。これは本当ですか?

そのファイル名が表示/印刷/エコーされた場合にセキュリティ上の問題になるファイル名に入れることができる文字はありますか?

Linux システムで bash を実行しているとします。

これは実際に私が現在抱えている問題でも、解決する必要がある問題でもありません。これは好奇心のためであり、これが現実のものであるかどうかを確認するためのものです。

4

3 に答える 3

1

あなたに起こり得る最悪の事態をエコーするときは、中断することで''あり、あなたの助けを借りて、;任意のプログラム実行の脆弱性を持つことができます。これはbashの特殊文字のリストです:

" $ & ' () * ; < > ? [ \ ] ` { | } ~ space tab cr lf

それらは、使用状況によっては潜在的な脅威となる可能性があります。

于 2012-11-29T11:07:22.427 に答える
1

誤って構成された端末とロケールでは、UTF-8 も危険な場合があります。数年間、UTF-8 テキストを印刷すると、次に入力するコマンドの前にいくつかの文字が追加される設定を使用していました。

$ cat file.txt
šómé ǧářbáǧě
$ 1;21

と入力した後ls、結果は

$ 1;21ls
1: command not found
21ls: command not found
于 2012-11-29T11:39:26.870 に答える
0

ファイル呼び出しを考えると、文字だけでなく、コマンド名も問題になる可能性がありますrm

$ ls               # List files 
rm  somefile  

$ `ls`             # Why aren't my file listed?

$ ls               # Opps where did somefile go?
rm 

backticksまたはを使用するときは、スクリプトで実際に行っていることに注意してくださいeval

先頭のハイフン:

$ ls
-dumbfile

$ rm -dumbfile
rm: invalid option -- 'd'

$ rm -- -dumbfile   # use -- to delete files containing leading -
于 2012-11-29T11:12:28.550 に答える