【问题标题】:Does Scala Anorm String Replacement Sanitize Inputs?Scala Anorm 字符串替换是否会清理输入?
【发布时间】:2012-04-09 01:24:34
【问题描述】:

我正在使用 Play!框架与 Anorm 一起访问数据库。我经常看到像下面这样的例子,对象成员被直接注入到 SQL 语句中。

我的问题是,这些输入是否经过消毒?大多数示例如下所示:

object Person {
    def save(p:Person) {
        DB.withConnection ("default") { implicit connection =>
            SQL("""
                 INSERT INTO person(firstName,lastName)
                 values ({firstName}, {lastName})
                """
               ).on(
                "firstName" -> p.firstName,
                "lastName"  -> p.lastName
            ).executeUpdate()
        }
    }
}

我会尝试通过hack的方式找出来,但是很容易出错所以我认为问更合适,我可以借鉴群众的智慧。

【问题讨论】:

    标签: sql scala playframework-2.0 anorm


    【解决方案1】:

    根据its source code,Anorm 只构建java.sql.PreparedStatements,从而防止此类 SQL 注入。 (请参阅PreparedStatement wikipedia 页面了解一般说明)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2021-01-25
    • 2011-11-18
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多