获得隐藏的领域。我在网上发现,某些事件处理需要这个隐藏字段。 (任何人都知道更多细节?)
我玩过XSS-Me(https://addons.mozilla.org/de/firefox/addon/7598/)一个firefox插件,试图找到XSS漏洞。 插件的作用是,它将一些值注入到隐藏的字段中,然后wicket抛出: WicketRuntimeException:尝试访问未知请求侦听器接口null
有没有人知道如何防止这种异常?还是抓住了?
mfg bernhard
完整的痕迹是:
ERROR - RequestCycle - Attempt to access unknown request listener interface null
org.apache.wicket.WicketRuntimeException: Attempt to access unknown request listener interface null
at org.apache.wicket.markup.html.form.Form.dispatchEvent(Form.java:1327)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:874)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:295)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:841)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:639)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
答案 0 :(得分:1)
由于Wicket是开源的,你当然可以通过查看源代码了解其中的一些内容。
我相信该字段用于Ajax事件处理,并且通过附加到链接的JavaScript给出一个值作为渲染时的onclick方法。您可以通过查看org.apache.wicket.markup.html.form.SubmitLink
方法getTriggerJavaScript
中的源代码来查看此javascript的制作位置,然后您可以使用firebug查看生成的标记。
Wicket中的许多方法都是最终的,所以你不能覆盖它们,并标记Javadoc劝告不要自己调用它们,特别是在使用这个字段的表单提交区域,这个调用发生在循环比大多数子类表单处理的标准钩子,所以试图捕获WicketRuntimeException并以特定于该字段的方式处理它可能是困难的。
抓住它并显示自定义错误页面当然可以按wiki page on error pages所述完成,无论如何这都是好事。