绕过客户端验证以检查服务器端验证

时间:2013-02-14 13:43:22

标签: jsf facelets

我已阅读过很多书,甚至我认为客户端验证使用起来也不可靠。这就是为什么我总是喜欢使用服务器端验证以及客户端验证。在此,我想知道是否有任何方法可以手动绕过客户端验证,以便我可以检查我的服务器端验证是否正常工作。我正在使用带有Facelets的JSF作为视图技术。

2 个答案:

答案 0 :(得分:2)

图书馆和工具太多了。
在这里,我提供了两种解决方案:

1)curl命令,如果您使用的是linux:

curl --data "year=1905&month=7"  http://yoursite.com/page.php

2)Python

import urllib2
import urllib

urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()))

the_url = "http://jira-host/jira/secure/CreateWorklog.jspa"

random_user_agent = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'

'HTTP POST fields
values = {'inline'  : 'true',
    'decorator' : 'dialog',
    'worklogId' : '',
    'id'    : '1027231',
    'timeLogged'    : '1d',
    'startDate' : fdate,
    'adjustEstimate'    : 'auto',
    'comment'   : '',
    'commentLevel': ''}

data = urllib.urlencode(values)

req = urllib2.Request(the_url, data, {
    'Accept': 'text/html, */*; q=0.01',
    'X-Requested-With': 'XMLHttpRequest',
    'User-Agent': random_user_agent,
    'Accept-Language': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4',
    'Referer':  'http://jira/jira/browse/TICK-216',
    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'})

答案 1 :(得分:0)

有些可能会使用Java为您的托管bean编写测试:

  • Arquillian。它是测试Java EE组件的框架。
  • JSFUnit,一个帮助您为JSF托管bean编写单元测试的框架。
  • 使用Apache HttpClient编写单元测试,以便向您的页面发送请求。就个人而言,我不推荐这个,因为你应该做很多工作来专门理解你的请求发送到页面的参数(是的,我知道你可以使用Firebug或Chrome控制台检查HTTP流量,但它仍然没有一个好主意)。