我正在尝试为我的POST请求添加一层安全保护。
我有多个ruby脚本,它们向我的rails服务器发送Curl Post Request。这里的问题是让攻击者同时发送大量请求。阻塞我们的服务器,使我们损失很多钱。
任何建议将不胜感激。
答案 0 :(得分:0)
您可以使用真实性令牌轨道以其形式自动生成,作为CLI脚本的一种非常基本的验证码。请记住,真实性令牌的目的是避免CSRF攻击而不是DOS攻击,因此,如果您担心漫游器占用带宽,那将无济于事,但是如果您担心只有“授权”请求通过,您就可以使用令牌。显然,最好的解决方案是对路由进行完整的用户身份验证和授权,并为您的脚本设置用户并为该用户生成JWT。获得真实性令牌或JWT后,您可以将它们添加到POST中。
您可以在http://guides.rubyonrails.org/security.html上查看真实性令牌的工作方式,并将authenticity_token密钥添加到POST中。如果您的脚本在Rails环境中运行,则创建会话并获取有效令牌很容易
app.get '/<some_model>s/new'
token = app.session[:_csrf_token]
然后在您的帖子中使用该令牌
app.post '/<some_model>s', params: {authenticity_token: token}