【问题标题】:Spring + Tomcat URL white list to prevent command injectionSpring + Tomcat URL白名单防止命令注入
【发布时间】:2010-10-22 17:59:34
【问题描述】:


我目前有一个包含约 100 个唯一 URL + 约 75 个页面的 web 应用程序。该应用程序使用 Spring 来保证安全性,并使用 Tomcat 来托管。我的问题是如何防止以下情况发生:
http://localhost/myApp/myPage;rollback;

如果不清楚,我试图阻止的是我的应用程序处理超过myPage 的任何内容,这些内容可以在白名单中找到。如果这不是解决此问题的正确方法,那是什么?

编辑

为了完整起见。我正在使用 Spring MVC。发生的情况是应用程序将查询字符串传递回我的应用程序,处理 sql 命令(因为它通过 DAO)。我们已经通过对返回的信息进行编码来解决这个问题,以暂时尽可能地缓解这种情况。

【问题讨论】:

  • 为什么在 URL 中使用分号而不是标准参数?
  • 让我们从我的 URL 最初看起来如下 http://localhost/myApp/myPage 然后有人将其更改为以下 http://localhost/myApp/myPage;rollback; 的想法进行处理
  • @Woot4Moo 我认为这是您的应用程序的设计问题。
  • @Rook 很可能,它是 Java 中某人的“hello world”。但是,这并没有改变我需要消除它的使用的事实。有什么想法吗?
  • 请提供更多详细信息。您究竟想防止发生什么 - 当有人试图访问 localhost/myApp/myPage;rollback 时出了什么问题; ?

标签: security spring tomcat code-injection


【解决方案1】:

您可以将custom filter 添加到 spring 安全过滤器链中以查找分号并在请求到达 servlet 代码之前过滤掉它。

【讨论】:

  • 我不一定知道这是否能解决问题,当然我会过滤掉分号,但我只是很确定还有更多方法可以通过我的服务器发送信息
【解决方案2】:

我们决定最好的做法是对通过查询字符串处理的所有数据进行编码。为什么以前没有实现这一点超出了我的理解。

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    相关资源
    最近更新 更多