我目前正在使用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
。現在,如果我進入顯示頂部網頁網址的欄,然後將其更改爲[myIPAddress]:8080/handler.js
,它會打開一個頁面,並在其上打印出我的js腳本。我該怎麼做才能讓這個人不能去[myIPAddress]:8080/handler.js
頁面?
我不確定它是否重要,但文件夾main.js
也有index.html
,edit.html
和handler.js
。
當爲.js文件提出請求並正確處理響應時,您必須檢查referer頭。當然,使用開發者工具,任何人都可以看到js加載在頁面中,所以,爲什麼要試圖隱藏js代碼 - 你不能使它看不見 –
所以我必須檢查每個文件?此外,我對此很陌生,那麼如何檢查引用標頭 - 是否是'app.get(...)'?我意識到,開發人員工具允許觀衆查看代碼無論如何,但這更多是爲了我的好奇心... –
我會認爲你在app.get中使用正則表達式進行檢查以捕獲以''結尾的文件。 js'作爲第一個參數 - 但是,這只是一個猜測 –