2017-12-19 4 views
-2

私は、ユーザーがそれらに送られたファイルを持つように要求することができボットを作っていますが、私は、彼らは内のファイルを要求していないことを確認するには、ファイルがnode.js内の特定のフォルダ内にあるかどうかを確認するにはどうすればよいですか?

../../mysecretstash/のようなstuff.jpg

特定のフォルダの内部にある場合のみではありません。

どうすればnode.jsでこれを行うことができますか?

+0

[ファイル/ディレクトリがNode.jsに存在するかどうかを確認](https://stackoverflow.com/questions/4482686/check-synchronously-if-file-directory-exists-in-node-js)の可能な複製 – cldrr

+0

ファイルはどのように要求されますか?ボットはhttpサーバの後ろに座っていますか? –

答えて

0

私は、彼らは彼がアクセスアクセスしたりすることはできません場合は、ルートを使用して、チェックすることで設定することができます

内のファイルを要求していないことを確認します。あなたはExpressを使用している場合は、このようなものは十分だろう。

app.all("/specialfolder/*", function (req, res) { 
    // check what to do 
    if(returnFile) { 
     // send the file 
    } else { 
     // send 404 or other unauthorized codes, e.g. 403 
    } 
}); 

あなたは必要な数のフォルダに対してこれらのルートを設定することができ、第二に、あなたがURLにマッチする正規表現を設定することができ、またはあなたがすべての機密を置くことができます1つのフォルダの中に情報を格納してから、上記の方法で—のURLルーティングを制御します。

また、ボットはまだコンテンツにアクセスできることに注意してください。ファイルに直接アクセスすることができないのはユーザーだけです。アクセスをBotで制御する必要がある場合は、使用しようとしているフレームワークによって異なります。

最後に、Node.jsのフレームワークは、パイプラインで動作するので、あなたが他の

app.use(express.static()); 

の上にこれを書くために必要となることに注意し、このapp.all()が介入し、前にファイルへのアクセスを拒否しますしてください公開アクセスが許可されます。

関連する問題