使用锚点而不是提交输入时的安全危险

时间:2010-01-13 14:43:34

标签: javascript jquery

我目前正在开发一个网站,我使用锚点来提交带有jQuery的表单,如下所示:

$("a[title=submit]").click( function(){
      $(this).parents("form").submit();
      });
});

然而I've read以这种方式使用链接是不好的做法,安全性方面。

有人知道问题是什么吗?

3 个答案:

答案 0 :(得分:4)

这不是安全问题,因为每个人都可以使用Firebug或其他工具操作本地计算机上的html / js / css代码。请记住,您的表单应始终由服务器(后端)验证。

答案 1 :(得分:4)

这是不好的做法,但“危险”与安全无关。

使用脚本辅助链接提交表单而不是仅仅不必要地提交表单会使您的表单需要JavaScript(因此在JS由于其他错误而不可用或损坏时无效),并使链接给出像“在新窗口中打开”和“书签链接”这样的功能不合适,不适用于表单提交。

使用普通的input type="submit"按钮。如果您因某种原因确实希望它看起来像链接,请将其设置为样式,例如:

input.linklike {
    color: blue; text-decoration: underline;
    border: none; padding: 0;
    width: auto; overflow: visible; /* hack for IE */
}

答案 2 :(得分:1)

没有安全问题,但它可能对所有用户都不起作用。

可以关闭Javascript(在这种情况下你根本无法提交),或者安全插件可能会阻止脚本,如果它错误地将javascript后检测为恶意脚本。

如果关闭javascript,您应该确保该页面仍然可用。也许在html中渲染一个提交按钮,然后使用jQuery删除按钮并插入一个锚点。这样,如果javascript正常工作,你将获得你的主播提交,但如果不是,你仍然会得到你的提交按钮