2012-07-05 27 views
0

我正在为IBM Webshere 7.0开发一个JSF 2.0应用程序,为了安全起见,我想阻止用户使用GET方法提交表单,即用户将无法提交将表单值附加到查询字符串的表单。如何防止在JSF 2.0中使用GET方法提交表单?

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

+0

呃,这个问题很奇怪。您是如何通过GET提交表单的?这对于标准JSF''来说已经不可行。或者你是否分配了这个任务,在发布问题之前你甚至没有调查/测试/破解自己? – BalusC 2012-07-05 19:18:50

+0

我确实调查过了,我可以通过以下方式提交表单:www.myhost.com?fieldName1=Test&fieldName2=Test2,并且这些字段的值确实来到了辅助bean。这是我想要防止的。 – user1220373 2012-07-06 03:20:55

+0

然后你在那里有一些奇怪的设计。动作调用如何?如果没有对数据进行任何处理,这样的bean就毫无用处。 – BalusC 2012-07-06 04:53:21

回答

0

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

参见: