如何防止经典 asp 站点中的 csrf 攻击?

How can I prevent csrf attack in classic asp site?

我有一个用 vb6 和经典 asp(12 年前)开发的应用程序。现在我必须防止它遭受跨站请求伪造 (CSRF)。

我怎样才能做到这一点?

你可以像在 asp.net mvc 中一样实现它。

  1. 在服务器上生成令牌并将其存储(例如在会话中)
  2. 将令牌发送给客户端
  3. 客户端将其与 "normal" 表单数据一起发送回服务器
  4. 如果需要,请检查服务器上的令牌

您甚至可以 "copy" asp.net 功能并编写一个像这样的 vbscript 函数:

public function AntiForgeryToken()
    AntiForgeryToken = "<input type=""hidden"" name=""CSRFToken"" value=""" & session("CSRFToken") & """/>"
end function

' then in every form as needed:

<form>
<%=AntiForgeryToken()%>
<input type="text" name="" value="">
<input type="submit" value="submit">
</form>

进一步阅读:

synchronizer token pattern in classic asp

Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet