你應該保護航線與祕密令牌,以避免暴露在下面使用代碼訪問。希望這會對你有所幫助:
// Server 1
const fs = require('fs');
app.use(function(req, res, next) {
var secret = req.headers.hasOwnProperty('authorization')
? req.headers.authorization
: false;
if (! secret || secret !== 'token [your-secret-token]') {
res.status(403).send('Access forbidden');
}
// Create write stream to sitemap file
var stream = fs.createWriteStream('sitemap.xml');
// Redirect request body to stream which writes to sitemap file
req.pipe(stream)
.on('end',() => res.send('ok'));
});
// Server 2
const http = require('http');
const fs = require('fs');
var stream = fs.createReadStream('new-sitemap.xml');
var req = http.request({
host: 'server1',
headers: {
authorization: 'token [your-secret-token]',
},
});
req.on('response', (res) => {
if (res.status === 200) {
console.log('File uploaded');
}
else {
console.error('File not loaded');
}
});
// Write data from file into request body
stream.pipe(req);
請注意,令牌應該是最小的32個字符長度足夠強大。不要忘記不時更新它。這也是一個概念。
你能想象如果你能做到這一點嗎?這意味着任何人都可以遠程修改你的文件! 你需要做的是在服務器1上創建一個API,如/ changeSitemap並讓server2調用它 – VirginieLGB
實際上,我不想公開我的後端API,因爲我試圖從服務器1上的Server2修改文件。 – user3811978
那會更糟,如果你能這樣做的話haha 而且你可以隨時檢查是否來自Server2的呼叫! – VirginieLGB