【问题标题】:Can you load or execute Javascript on a page you link to?您可以在链接到的页面上加载或执行 Javascript 吗?
【发布时间】:2015-04-07 02:29:11
【问题描述】:

我想链接到一个页面,当用户单击该链接时,他的用户名和密码已经存在(一群用户将共享相同的凭据)。但是,我在链接的地方也无法控制该页面代码。

用户点击链接后是否可以让我的 javascript 在那里执行?

$("#link").click(function() {
 alert( "Handler for .click() called." );
 var username = getCookie("username");
    var password = getCookie("password");
    var usernameTextBox = document.getElementById("j_username");
    var passwordTextBox = document.getElementById("j_password");
     usernameTextBox.value = username;
     passwordTextBox.value = password;
 });

See my JSfiddle

所以这是工作流程。 1. 一群随机用户看到我的页面加载了我的 javascript,他们点击了一个链接 2.链接将他们带到另一个我不控制代码的页面。我可以让第 1 步中的页面中的 javascript 仍然运行以自动填充用户名和密码吗?

我之所以这么想是因为您可能会对此进行大量恶意操作(备份计划是仅在链接下方显示用户名和凭据,他们必须记住它才能登录(或将其显示在框架))。

是否有浏览器可以启用此跨站点脚本,但仅适用于这一页?

【问题讨论】:

  • 不,您不能通过链接控制另一个页面。同源政策
  • 谢谢,我认为这将是一个浏览器安全功能
  • @j08691 我可以启用跨站点脚本,但仅适用于浏览器设置中的特定页面吗?
  • 如果是托管类型的用户,你可以做一个浏览器扩展
  • 给用户一个书签,他们可以在下一页上单击一次,以填写所述字段。

标签: javascript jquery html render execution


【解决方案1】:

您可以将表单从您的页面提交到另一台服务器上的操作。这将一起绕过目标服务器上的登录表单

$("#link").click(function() {
    var username = getCookie("username");
    var password = getCookie("password");
     $("<form action='https://simcontrolcenter.wireless.att.com/provision/j_acegi_security_check' method='POST'>" +
    "<input name='j_username' value='" + username + "'/>" +
    "<input name='j_password' value='" + password +"'/>" +
    "</form>"
  ).submit()

【讨论】:

    猜你喜欢
    • 2012-06-18
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多