【问题标题】:How to prevent form submission using GET method in JSF 2.0?如何防止在 JSF 2.0 中使用 GET 方法提交表单?
【发布时间】:2012-07-05 09:07:31
【问题描述】:

我正在为 IBM Webshere 7.0 开发 JSF 2.0 应用程序,出于安全原因,我想阻止用户使用 GET 方法提交表单,即用户将无法提交将表单值附加到查询字符串的表单。

是否有任何简单的解决方案或者我需要构建过滤器来防止这种情况?

【问题讨论】:

  • 呃,这个问题很奇怪。您究竟是如何通过 GET 提交表单的?这对于标准 JSF <h:form> 来说已经不可能了。还是您被分配了这项任务,而您在发布问题之前甚至根本没有调查/测试/破解自己?
  • 我确实进行了调查,并且能够通过以下方式提交表单:www.myhost.com?fieldName1=Test&fieldName2=Test2 并且这些字段的值确实到达了支持 bean。这就是我要防止的。
  • 那么你有一些奇怪的设计。动作调用怎么样?如果不对数据做任何事情,这样的 bean 是没有用的。
  • 基本上我已经将发送到应用程序的所有 post 参数附加到我之前提到的 URL(包括 JSFVIEW 状态),并且它确实调用了操​​作方法:(。

标签: jsf-2


【解决方案1】:

当您使用 JSF <h:form> 时,默认情况下会发出 POST 请求。即使发送了 Query 字符串,由于提交方法是 POST,因此结果不会作为查询字符串发送,即不会添加到表单的操作 URL 中。相反,字符串作为 HTTP 请求的主体发送,FacesServlet 的 doPost() 方法将被调用。

另见:

【讨论】:

    猜你喜欢
    • 2011-06-16
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2011-05-17
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多