0

给定一个带有参数的报告,比如foo带有 value ,如果它支持参数,或者它只支持静态文本bar,我希望以下内容能够打印出来。bar$P{foo}

    AutoText showBatchAutoText = new AutoText("$P{foo}",
                                 AutoText.POSITION_HEADER,
                                 HorizontalBandAlignment.CENTER);

相反,它会打印((java.lang.String)parameter_foo.getValue()),这意味着它在该领域做了某种逻辑......

它应该工作吗?我是否滥用了“消息”类型的自动图文集?

4

1 回答 1

0

DynamicJasper 在将字符串发送到 Jasper 之前将其包裹在引号中。所以,sql注入攻击方式,你可以用转义引号绕过它。

AutoText showBatchAutoText = new AutoText("\" + $P{foo} + \"",
                             AutoText.POSITION_HEADER,
                             HorizontalBandAlignment.CENTER);

一个黑客,但......它的伎俩。

于 2014-06-24T13:25:29.563 回答