前端安全实战:密码、XSS 与 CSRF 防护指南
在前端开发中,安全往往是被后置处理的一环,但这恰恰是最危险的盲区。很多开发者认为后端负责验证就万事大吉,却忽略了前端作为用户交互第一道防线的关键作用。
常见风险点
最近审查过一个项目,发现登录逻辑直接在前端明文传输密码,且将 Token 存储在 localStorage 中。这种实现方式在安全审计中通常是一票否决。
不安全的登录组件
// 反面教材:明文传输与不安全存储
function Login() {
const [username, setUsername] = React.useState('');
const [password, setPassword] = React.useState('');
const handleSubmit = async (e) => {
e.preventDefault();
// 问题 1: 依赖 HTTPS 协议层保护,但代码层面未做额外校验
// 问题 2: 直接将 token 存入 localStorage,易受 XSS 攻击窃取
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const data = await response.json();
localStorage.setItem('token', data.token);
};
return (
<form onSubmit=>
setUsername(e.target.value)} />
setPassword(e.target.value)} />
登录
);
}

