2013-02-10 35 views
0

我想让Twilio与我的express/node.js安装一起工作。 Twilio在收到短信时正在向我的服务器发送传入连接。然后我用短信答复回复此问题。CSRF与Twilio

这是第一次。然后第二次,我的服务器阻止Twilio,因为它说它是伪造的请求。

有没有适当的方法来解决这个问题?

回答

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检查。

+0

感谢您的精彩解释。我将禁用该控制器的csrf检查。我很好奇,为什么浏览器会允许另一个网页骑在另一个网页上。为什么浏览器不在网站之间分配cookie? – Alexis 2013-02-10 22:24:22

+0

浏览器*确实在站点之间分割Cookie。攻击者没有时间访问实际的facebook.com cookie(从上面继续我的示例)。执行此攻击是为了在用户的浏览器内部提交GET/POST请求以引起一些副作用。 – tom 2013-02-10 22:52:29

+0

啊。得到它了。非常感谢你! – Alexis 2013-02-10 23:17:58