java-在JSF中,防止表单篡改的最佳方法是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在JSF中,防止表单篡改的最佳方法是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1264字,纯文字阅读大概需要2分钟。
内容图文
我们正在使用JSF 1.x,并且已启用服务器端状态保存.我们有一个问题,一个实施为Web机器人的恶意用户可以提交一个页面,而没有提交期望采用表格形式的所有字段.这导致一些验证器没有被调用,应该被调用,等等.
我们希望防止用户能够从表单中添加/删除字段并提交表单(如果他们想提交表单,则所有期望的字段都在那里.)过去,我使用页面上字段ID的MD5哈希值以及另存为页面上隐藏字段的未知短语和会话过滤器来完成此操作,该会话过滤器根据已提交的字段ID生成预期的哈希值,并将其与隐藏字段中的值.
我可以使用JSF开箱即用以防止用户操纵表单吗?还是带有第三方库?
解决方法:
如果使用required =“ true”显式设置了这些字段,则在JSF 1.x中应该已经不可能.如果您省略此操作和/或由定制的验证器代替,或者改为在bean操作方法中进行验证,则漫游器确实可以篡改表单.
因此,要解决此问题,请使用硬服务器端值将显式required =“ true”添加到必填字段(因此,例如,不是required =“#{not empty param.foo}”,否则客户端/机器人可以控制param.foo).由于视图状态存储在服务器端,因此网络机器人无法显示/修改状态.
至少,这就是理论.或者它必须是一个非常聪明的Web机器人,或者可能是Web应用程序中使用的JSF impl / version中的(旧的?)错误/漏洞.最新的JSF 1.x可以下载here.
更新:对于针对JSF 2.x的答案,请转到Validator skipped when input is removed in client – is this as per JSF specification?简而言之,在JSF 2.x中是可能的,并且可以(应该)通过放置bean验证或DB约束来保护这一点.
内容总结
以上是互联网集市为您收集整理的java-在JSF中,防止表单篡改的最佳方法是什么?全部内容,希望文章能够帮你解决java-在JSF中,防止表单篡改的最佳方法是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。