【问题标题】:How to protect a velocity template from tampering?如何保护速度模板不被篡改?
【发布时间】:2010-10-27 21:37:03
【问题描述】:

我们有一个 Velocity 收据模板。该模板包括税号,其值将在生成收据时被替换。这是为了确保收据上印有真实执照持有人的 TIN。

我们如何防止最终用户在模板本身中硬编码 TIN 号码?如果 Velocity 在合并时在模板中找不到字段,有没有办法抛出异常?

【问题讨论】:

  • 明确地说,您是否担心运行您的应用程序的用户会篡改模板?是不是还有很多其他的东西他们也可以篡改——比如收据的打印输出?

标签: java velocity


【解决方案1】:

是否允许用户自定义模板的其他部分?

如果没有,您可以在程序中包含模板的 md5 校验和,并检查文件是否被篡改。

不过,不确定这是否值得。恶意用户还有很多其他方法可以伪造收据,您无法阻止所有这些方法。

【讨论】:

    【解决方案2】:

    保护模板本身可能会更好,而不是试图让 Velocity 报告不正确的操作。 Velocity 可以很好地容忍缺失字段等,所以我怀疑它不会做你想要的。

    您可以通过签名或类似的方式保护模板吗?这样一来,如果有人干扰了它,它应该可以立即被检测到。

    【讨论】:

    • 另外,将许可证的某些部分绑定到打印过程中(不仅仅是打印数字)。这样,如果没有有效的许可证,它应该无法打印。如果您担心他们使用它来打印超出许可证允许的数量,那么除了保护模板之外,您还有其他问题,因为整个商业模式都是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多