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

时间:2016-08-31 06:30:10

标签: asp.net asp-classic csrf-protection

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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

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

  1. 在服务器上生成令牌并将其存储(例如在会话中)
  2. 将令牌发送给客户
  3. 客户端将其与" normal"一起发送回服务器。表格数据
  4. 检查服务器上的令牌(如果需要)
  5. 你甚至可以"复制" 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