gpt4 book ai didi

javascript - 如何在 Perl CGI 程序中链接到上一个网页?

转载 作者:行者123 更新时间:2023-11-28 16:36:15 27 4
gpt4 key购买 nike

我有一个网格,其中有一个到下一页的链接,并且我有一个按钮可以从当前页面导航回网格。到目前为止,我一直在使用这种方法向后导航,即

     <INPUT TYPE="BUTTON" VALUE="Back to Datagrid" onClick="history.go(-1);">

但是当我遇到其他一些限制时,我在导航时遇到了一些问题,所以我发现了类似的内容:

    $exit = $ENV{'HTTP_REFERER'};
<INPUT TYPE="BUTTON" VALUE="Back to Datagrid" onClick="$exit">

但是它不起作用。我不知道为什么,这两种方法有什么区别?

最佳答案

第一种方法尝试复制后退按钮的功能。

第二种方法采用浏览器声明的上一页的 URI,将其放入页面中而不对其进行清理,并尝试运行该 URI,就好像它是 JavaScript 一样。这会立即出错,因为 URI 很少是有效的 JavaScript。

更好的方法是计算出您想要访问的 URI(大概基于您用于构建当前页面的数据)并创建一个正常的前向链接( <a href... )到它......并且如果用户想返回,请让他们使用浏览器中内置的后退按钮。这种方法:

  • 如果 JS 不可用,也不会失败
  • 如果浏览器不发送可选的 HTTP header ,则不会失败
  • 不会让用户的浏览器历史记录以意想不到的方式运行,从而使用户感到困惑

我不确定,但我怀疑有人可能会制作一个 URI 并将其链接到您的页面,包括 "<script>...在里面。然后,用户可以单击该链接,获取插入到该页面中的页面的 URI,并向您介绍 XSS 攻击。 (我认为这应该会失败,因为其中一些字符应该是 URI 编码的,但我不想冒这个风险 - 每当您有来自系统外部并返回到页面的数据时,请始终放入针对 XSS 的标准保护措施)

关于javascript - 如何在 Perl CGI 程序中链接到上一个网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3869822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com