我正在尝试让Twilio使用我的express / node.js安装。当Twilio收到短信时,它正在与我的服务器建立传入连接。然后我通过短信回复回复此事。
这是第一次使用。然后第二次,我的服务器阻止Twilio,因为它说它是伪造的请求。
有没有正确的解决方法?
答案 0 :(得分:2)
您应该为该URL禁用CSRF。请参阅此问题:Disable csrf validation for some requests on Express
CSRF是一个漏洞,仅适用于需要以cookie形式提供会话信息的请求(这就是为什么CSRF有时也称为“会话骑行”)。简而言之,CSRF是指恶意网站所有者可以在他们控制的网页上使用<form>
标记向您的网站发布表单,从而导致在用户不知情的情况下将经过身份验证的请求发送到您的服务器。例如,假设Facebook有一个/delete_user.php,它删除当前经过身份验证的用户。对该URL的CSRF攻击将采用恶意网站所有者网站上<form action="http://facebook.com/delete_user.php">
标记的形式(无双关语),在用户不知情的情况下提交。 /delete_user.php的非CSRF安全实现将看到用户的auth cookie并删除用户 - 这让用户感到非常沮丧。
无论如何,长话短说,你的Twilio处理程序不需要用户的浏览器cookie,因此不受CSRF攻击。只需对Twilio回调URL禁用CSRF检查。