java - 我在网络应用程序中所做的事情是否可以轻易被黑客攻击或破坏?

标签 java struts2 weblogic

我正在向用户展示一些考试。在通过考试之前,用户不得进入实际站点。但是,有些用户可以选择在某个日期(例如从当前日期起的一个月)之前绕过考试。因此,这些用户有一个月的时间参加考试。在此之前,他们可以单击考试页面上的“继续”即可进入该网站。

我的逻辑: 当普通用户单击考试表单页面上的提交时,我正在执行所有逻辑并向数据库提交信息。当这些“特殊”用户单击“继续”时,如果他们仍处于一个月的窗口中,我将仅将“true”编码到“didPassExam()”方法中。

我的问题是: 要检查用户单击了哪个按钮,我正在执行以下操作(Struts 2 代码)

私有(private)字符串提交;

public void setSubmit(String submit) {
    this.submit = submit;
}

在 JSP 中:

 <s:submit name="submit" value="Submit" />

 <s:submit name="submit" value="Proceed" />

所以基本上当用户单击按钮时,我的操作类会知道单击了哪个按钮。但是,某些黑客是否可以故意将“提交”按钮的值更改为“继续”,然后即使对于普通用户也可以绕过考试?

有人会以不同且更安全的方式做到这一点吗?

最佳答案

是的,任何用户都可以传递特殊的“继续”并获得访问权限。

由于您可以(并且确实)已经区分了用户类型之间的差异,因此您应该基于此在服务器上验证他们的按钮。客户端检查始终可以被绕过。

关于java - 我在网络应用程序中所做的事情是否可以轻易被黑客攻击或破坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/912097/

相关文章:

java - 带有对象推送的 Morphia 聚合阶段组

java - 缩写词 "Spitter"代表什么?

eclipse - Struts 没有 Action 映射问题

java - weblogic 11g 和 weblogic 12c 上的 jax-ws 日期时间解析差异

java - 应用程序启动时使用计时器启动 EJB

java - 如何禁用Java,Android中的所有按钮

java - 显式 Hibernate 连接表

java - 我如何在 displaytag 中创建链接?

java - Struts2教程不起作用

java - 从 Java Web 应用程序中的 WebLogic 10.3 内部 keystore 中检索一些信息