私は現在、socket.io
とNodeJS
を使用して何かを制御するプロジェクトに取り組んでいます。これまでのコードです:Socket.io - クライアントにmain.jsファイルのファイルを表示させない
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var fs = require('fs');
var contents = fs.readFileSync("data.json");
var remoteLayout = JSON.parse(contents);
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
app.get('/edit', function(req, res) {
res.sendFile(__dirname + '/edit.html');
});
app.use(express.static(__dirname));
io.on('connection', function(socket) {
console.log('a user connected');
socket.on('disconnect', function() {
console.log('user disconnected');
});
});
http.listen(8080, function() {
console.log('listening on *:8080');
});
私のコードは、関連する部分に短縮されています。
ノードでこのコードを実行すると、ページが開きます[myIPAddress]:8080
index.html
のように開き、Chromeの上部に表示されます。[myIPAddress]:8080
と表示されます。今、ページのURLが一番上に表示されるバーに、[myIPAddress]:8080/handler.js
に変更すると、jsスクリプトが印刷されたページが開きます。その人がそのページに行くことができないようにするにはどうすればいいですか?[myIPAddress]:8080/handler.js
ページ?
main.js
ファイルのフォルダは、index.html
、edit.html
、およびhandler.js
もあります。
.jsファイルが要求されたときに 'referer'ヘッダーをチェックし、適切に応答を処理する必要があります。もちろん、開発者用ツールを使用すると、誰もがページにロードされたjsを見ることができたので、なぜjsコードを隠そうとすると気になりません - それを不可視にすることはできません –
これは各ファイルについてチェックする必要がありますか?また私はこれを初めて使っているので、refererヘッダーを確認するにはどうすればよいのですか?それは 'app.get(...)'ですか?とにかく、開発者用ツールではコードを見ることができますが、これは私の好奇心のためのものです。 –
app.getで正規表現を使ってチェックして、 'で終わるファイルをキャッチすると思いました。 js 'を最初の引数として使用していますが、それはちょうどだと思います –