译者 | 陈峻 审校 | 孙淑娟 跨站点请求伪造(Cross-site request forgery,又称:跨站点引用伪造)是一种针对Web应用的攻击形式
。黑客通过伪装恶意请求,诱骗用户运行他们本不打算执行的任务。尽管CSRF可能听起来与XSS攻击类似
,但它们的执行方式存在根本差异。对此 ,Web服务器需要一种机制,来确定浏览器所产生的请求 ,是否源于合法用户的真实意图 ,免费模板而非受攻击的胁迫 。针对此类问题,服务器端可以生成一个唯一的、且不可预测的密钥值,作为CSRF令牌被包含在客户端的HTTP请求中 。当有后续请求发出时,Web服务器会验证包含了令牌的请求参数
,以拒绝那些不包含有令牌的请求参数。由于黑客几乎不可能构造一个完整
、有效的源码下载HTTP请求来欺骗Web用户 ,因此该方法通常可被用于防范CSRF攻击
。下面 ,我将和您讨论CSRF令牌的工作原理
,及其在应用安全中的重要性。 CSRF令牌通常被建议添加到所有状态更改(state-changing)的请求中 ,以便在后端被执行验证。由于只有应用服务器和客户端可以识别令牌
,因此后端必须确保传入的请求包含有效的CSRF令牌,建站模板以避免XSS或跨站点请求伪造攻击的得逞 。 在基于Cookie的会话期间 ,作为密钥值的CSRF令牌需要被安全处理以保持有效。为此
,令牌应当被放置在HTML表单的隐藏字段中,被传输到客户端,并使用HTTP的POST请求被提交 。作为优秀的实践,我们建议使用标准的标头来验证请求的香港云服务器来源,并使用其他措施去识别和比较来源和目标。如果来源匹配 ,则判定请求是合法的;如果不匹配,则表明疑似跨域请求,应予以丢弃
。 由于令牌在生成过程中使用到了伪随机数(pseudo-random number)生成器 、静态密钥
、以及种子时间戳,因此CSRF令牌的值是不可预测的亿华云