安全测试重点思考(中)--如何防止漏洞XSS和CSRF漏洞-xss和csrf的区别

时间:2024-04-06 14:34:23
特征 XSS (跨站脚本) CSRF (跨站请求伪造)
定义 攻击者在网站上注入恶意脚本,使其在其他用户的浏览器中执行。 攻击者利用用户在其他站点已登录的会话来执行未经授权的操作。
目的 盗取用户会话信息、执行恶意操作(如篡改页面内容、重定向到恶意网站等)。 以用户身份执行敏感操作(如转账、修改密码等)而不需要用户的明确操作。
实现方式 通过在网站的输入字段中注入恶意脚本,如输入框、URL 参数、Cookie 等。 通过伪造请求,构造恶意的 URL 或表单,并诱使用户点击或提交。
例子 1. 在论坛发帖中插入恶意脚本,当其他用户浏览帖子时执行。
2. 在输入框中注入脚本,盗取用户的会话 Cookie。
1. 诱使用户点击恶意链接,执行转账操作。
2. 在恶意网站上自动提交表单,修改用户密码。
防御措施 1. 对用户输入进行充分验证和过滤,对输出进行适当的编码。
2. 使用 Content Security Policy (CSP) 限制脚本执行。
3. 使用 HTTP Only Cookie,减少会话 Cookie 被窃取的风险。
1. 使用 CSRF Token 防止伪造请求。
2. 使用 SameSite Cookie 属性限制跨站请求。
3. 在执行敏感操作前进行双重确认。