如果我设置断点

时间:2018-09-12 19:56:02

标签: javascript jquery xss

如本例所示,我正在努力防止交叉脚本攻击

https://localhost:8089/myweb/Logon/Index?ReturnUrl=javascript:{alert(%27xss%27);}

以下是我的登录方法。我正在使用encodeURIComponent编码输入字符串,并在成功返回时使用decodeURIComponent。 (在有效的情况下,ReturnUrl =%2Administration)

如果我在Chrome开发人员工具中设置断点并逐步执行代码,则此代码有效。 (它的工作原理是继续登录并带我到索引页面,而无需执行警报框。)

但是如果我在不打开开发工具的情况下运行它,它将执行JavaScript警报消息并陷入无限循环之类的事情。同样,有时ReturnUrl可以是“ undefined”或什么都不是。它仍然应该导致默认的索引页面。带有未定义字符串的encodeURIComponent会导致我进入错误页面。

我搜索并浏览了有关主题的所有帖子。我仍然被困住。我希望这可以清楚地解释我的问题。如果您想提供帮助但我的问题仍不清楚,请询问。 TIA

LogIn(
  userNameVal,
  passwordVal,
  encodeURIComponent($("#returnUrl").val()),
  function(data) {
    if (data.Success) {
      form.submitted = false;
      window.location.href = decodeURIComponent(data.ReturnUrl);
    } else {
      $("body").removeClass("manualLoading");
      $loginErrors.hide();
      $loginErrors.html(data.Message);
      $loginErrors.fadeIn('fast');
    }
  },
  function() {
    $("body").removeClass("manualLoading");
    $loginErrors.html("An error occured.");
    $loginErrors.fadeIn('fast');
  }
);

0 个答案:

没有答案