XSS 的种类有哪些如何理解 ?CSRF 及 SSRF 原理及防御? 如何通过盗用用户 cookie 信息进行免密登陆。如何防范?
XSS(跨站脚本攻击)的种类有以下几种:
- 存储型 XSS:攻击者将恶意脚本存储在目标网站的数据库中,当用户访问网站时,恶意脚本会被注入到页面中执行。
- 反射型 XSS:攻击者构造一个包含恶意脚本的URL,诱使用户点击该URL,当用户点击后,恶意脚本会被注入到目标网站的页面中执行。
- DOM 型 XSS:攻击者通过修改页面的 DOM 结构,注入恶意脚本,当用户浏览该页面时,恶意脚本会被执行。
CSRF(跨站请求伪造)是利用用户在已登录的网站上的身份,通过伪造请求来进行攻击。攻击者通过诱使用户访问恶意网站或点击恶意链接,来触发用户在目标网站上的操作,从而实现攻击目的。
SSRF(服务器端请求伪造)是攻击者在目标网站上构造恶意请求,使目标服务器发起对其他内部或外部资源的请求。攻击者通过构造恶意的请求参数,使服务器获取到非预期的敏感信息。
防御 XSS 的方法包括:
- 对用户输入进行过滤和转义,确保用户输入不会被当做脚本执行。
- 设置 Content Security Policy(CSP),限制页面可以加载的资源和执行的脚本。
- 使用 HttpOnly 标记来限制 JavaScript 对 Cookie 的访问。
- 对于 DOM 型 XSS,可以使用安全的 DOM 操作,避免使用
innerHTML等易受攻击的 API。
防御 CSRF 的方法包括:
- 使用随机生成的 token 验证每个请求的合法性。
- 在请求中使用验证码或者双因素认证,增加用户身份验证的复杂度。
- 设置 Referer 和 Origin 头信息,检查请求来源的合法性。
- 使用 SameSite Cookie 属性限制 Cookie 的跨站访问。
- 在敏感操作(如修改密码、删除账户)上使用额外的确认步骤。
防御 SSRF 的方法包括:
- 对用户输入进行严格的校验和过滤,避免恶意请求的注入。
- 限制服务器发起请求的目标地址和端口范围。
- 使用白名单机制,限制服务器允许访问的资源。
- 对于云服务环境,使用安全的配置和访问控制策略。
通过盗用用户 Cookie 信息进行免密登陆是一种恶意行为,一般来说,应用程序应该采取以下防范措施:
- 使用 HttpOnly 标记来限制 JavaScript 对 Cookie 的访问,防止通过 JavaScript 盗取 Cookie。
- 使用安全的传输协议(如 HTTPS)来加密传输过程,防止中间人攻击。
- 设置 Cookie 的有效期较短,减少 Cookie 被盗用的时间窗口。
- 对敏感操作(如修改密码、删除账户)进行额外的身份验证,例如要求再次输入密码或发送短信验证码。
- 定期监测和审查用户账户的异常活动,及时发现并采取相应的安全措施
原文地址: https://www.cveoy.top/t/topic/hC0Z 著作权归作者所有。请勿转载和采集!