在CentOS上配置Node.js應用程序的安全設置是一個多層面的過程,涉及多個方面的措施。以下是一些關鍵的安全設置步驟和最佳實踐:
sudo yum update -y
sudo yum install -y epel-release nodejs npm
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
source /etc/profile
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install <node版本號>
nvm use <node版本號>
sudo systemctl status firewalld
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
sudo firewall-cmd --reload
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
sudo npm install -g https-express
const validator = require('validator');
const email = 'foo@bar.com';
console.log(validator.isEmail(email)); // true
connection.query('UPDATE users SET firstName = ? WHERE id = ?', [req.body.firstName, userId], ...);
const crypto = require('crypto');
const secret = 'your-secret-key';
// ... (簽名和驗證函數) ...
app.use((req, res, next) => {
const allowedIPs = ['192.168.1.100', '10.0.0.1'];
if (!allowedIPs.includes(req.ip)) {
return res.status(403).send('Forbidden');
}
next();
});
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Internal Server Error');
});
const express = require('express');
const helmet = require('helmet');
const app = express();
app.use(helmet());
Port 2222
sudo yum install policycoreutils-python-utils
sudo setenforce 1