JavaScript - 错误后是否可以强制执行代码?

时间:2011-07-14 12:28:26

标签: javascript

我正在尝试在我正在测试的网站上制作反映跨站点脚本的PoC。我在Javascript代码中找到了一个可以注入命令的地方,但问题是前面的代码块会抛出一个“未定义”的错误,因此(至少我认为是这样)我的注入代码没有被执行。有没有机会执行代码呢?

以下是代码:

UndefinedObject.Init({
  Var1:"a",
  Var2:"b",
  Var3:"can_be_injected_with_JS_code")}

我无法注入任何HTML标记,因为这些标记已被应用程序过滤。

非常感谢!

4 个答案:

答案 0 :(得分:1)

将它们包裹在try catch块下。

答案 1 :(得分:1)

在执行序列中,如果代码失败,则不执行剩余部分。可以使用try...catch捕获Javascript错误(“异常”)(如果您也可以注入此try-catch)。

如果有不同的流程(通过另一个事件),代码将继续。

答案 2 :(得分:1)

您可以尝试使用try-catch,如果这样做无效,请尝试使用window.onerror

答案 3 :(得分:1)

通常,正确的方法是使用 try-catch-finally try-finally

如果您对错误做了些什么 - 记录或做其他事情。 Catch也可用于执行代码,但不是一种好的做法。如果你愿意,你可以对错误一无所知,这就是使用 finally 的原因。

最后用于执行一段代码很重要,无论是否抛出错误。例如,当您使用最终中的文件时,使用C ++或其他语言,文件将被关闭(您无法将其打开)。请查看here以获取一些示例。