2

ノードjsでサーバーアプリケーションを書いています。オペレーティング システムは Linux です。

ファイル名をプレーンな文字列として受け取るので、ハッキングされる可能性があります。次に、ファイル名文字列とパス文字列を次のように連結します。

filepath = '/home/www/upload/' + filename;

Linux ではなく、アプリケーション ロジックを使用して、アップロード フォルダー [またはサブフォルダー: オプション] 以外の場所にアップロード スクリプトが書き込まれないように保護したいと考えています。

私の現在の素朴な解決策は、..部分文字列を持つファイル名をブロックすることです。誰かが 2 つのドットのファイル名を持っていても気にしません。

確かに、セキュリティに関して言えば、視聴者にアドバイスを求めなければなりません。

4

2 に答える 2

2

私はこれに使用path.resolveします: http://nodejs.org/api/path.html

試す filepath = path.resolve(filepath)

その後

goodPath = filepath.startsWith('/your/allowed/upload/dir');

于 2013-10-25T12:38:29.760 に答える