java - 在 spring 应用程序中防止来自 curl/http post 的登录攻击

标签 java spring spring-security

我在亚马逊上托管了一个 spring web 应用程序,我正面临来自某些自动化机器的登录攻击。从我的日志中,很明显他们绕过了登录页面,并使用了类似的东西:

curl --data "j_username=xxx&j_password=yyy" http://www.mysecureurl.com/j_spring_security_check 

我的问题是如何防止此类攻击。有没有一种方法可以通过某些 spring 配置阻止此类不是直接来自登录页面的登录?

当用户尝试从登录页面尝试时,我将实现进一步的安全措施,如验证码、3 次错误尝试后锁定等。

最佳答案

您可以实现 Cross-site Request Forgery (CSRF)- Nonce-Token 模式。

换句话说,

  • 生成一个随机 token (每个用户都不同)。
  • 将此 token 放入用户 session 中
  • 将其添加为用户登录表单中的隐藏字段
  • 如果您收到登录请求,则检查提交的 token 是否与 session 中的 token 匹配 - 如果不匹配,则向他们发送访问拒绝

顺便说一句:

关于java - 在 spring 应用程序中防止来自 curl/http post 的登录攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16829642/

相关文章:

java - 在保留插图的 Java Swing 中更改 JButton 的边框颜色

spring - Grails 服务事务行为

java - NotReadablePropertyException : Invalid property 'productss' of bean class [java. util.ArrayList]

spring-mvc - Spring 5.0.3 RequestRejectedException : The request was rejected because the URL was not normalized

grails - Intellij 类 '' 已存在

tomcat - 如何禁用 Spring 安全日志记录

Java:如何拖放到 TrayIcon 上?

java - 哪个更快,在 java 中尝试 catch 或 if-else(WRT 性能)

Java:抽象枚举常量

spring - 为什么这个 Spring 应用程序中的过滤器中的 Autowiring bean 为空?