前端安全实战:密码存储、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 onSubmit=>
setUsername(e.target.value)} />
setPassword(e.target.value)} />
登录
);
}
;
