前端安全实战:密码存储、XSS 及 CSRF 防护
安全警示
这代码写得跟筛子似的,到处都是漏洞。
各位前端同行,咱们今天聊聊前端安全。别告诉我你还在忽略安全问题,那感觉就像在没有锁的房子里放贵重物品——能放,但随时可能被偷。
为什么你需要关注前端安全
最近看到一个项目,直接在前端存储用户密码,没有任何加密措施。我就想问:你是在做网站还是在做慈善?
反面教材
// 反面教材:不安全的代码
function Login() {
const [username, setUsername] = React.useState('');
const [password, setPassword] = React.useState('');
const handleSubmit = async (e) => {
e.preventDefault();
// 直接发送密码,没有加密
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const data = await response.json();
// 直接存储 token 在 localStorage
localStorage.setItem('token', data.token);
};
return (
<form =>
setUsername(e.target.value)} />
setPassword(e.target.value)} />
登录
);
}
;

