1

问题:如今的网站广泛使用 JavaScript,这有时使 Opera 难以记住密码。有趣的是,虽然 Opera 仍然可以完成表格,但既不能记住新密码也不能更新现有密码。问题是如果 Opera 忽略这些密码,如何将密码保存到 Opera 中?

仅供参考:我尝试过 Internet Explorer,结果相同。令我惊讶的是,Firefox 设法记住了那个密码,但我仍然更喜欢 Opera。

4

1 回答 1

1

简而言之,这个想法是用一个更简单的页面替换一个页面。

我有一个密码,很久以前就记住了。幸运的是,网站设计者从未更改过身份验证机制(即表单/字段名称、操作 URL 等)。尽管如此,他们使用 JavaScript 自动完成功能仍然有效。一旦他们更改了网站域,这就带来了挑战。事实证明,Opera 无法在新域上保存密码,但可以在以前的域在线时替换它。后来他们添加了更多的 JavaScript,让 Opera 更难记住。

让我们一一考虑。首先是尝试Opera内置的“查看源代码”修改授权网页客户端,应用更改并尝试一下。尝试的事情:逐步简化从剥离 JavaScript(例如onmouseclick()、onkeypress()等)和样式(“ style=... ”、“ class=... ”等)开始。我第一次设法使用这种技术保存密码。你也可以试试Opera Dragonfly

可悲的是,这在第二种情况下是没有用的。好吧,这一次的想法还是一样,但我们必须欺骗 Opera。这次我们需要一个至少支持PHP(或您喜欢的脚本语言)的网络服务器。出于安全原因,我建议使用您的网络托管等。我们应该在本地运行服务器。很好的例子是xampp。首先,我们需要从未经编辑的真实网络服务器下载我们的登录页面(在“查看源代码”进行实验后不要复制粘贴!)。我们不需要资源(样式/脚本),所以不要费心去获取它们。接下来我们需要欺骗 Opera。这很容易。您应该在您的主机文件中添加一条记录,将您的网页指向本地主机。像这样的东西:127.0.0.1 www.example.com. 查看您的网页源代码,您可能需要添加其他条目,例如127.0.0.1 login.example.com. 完成后启动您的本地网络服务器,并确保它侦听 localhost 的 80 端口(如果原始网络服务器在不同的端口上,则为任何其他相应的端口)。服务器成功启动后(请参阅日志以确保),您应该将保存的网页放在本地服务器上与真实 Web 上完全相同的位置。即login.phpauth/some/folder/structure/file.html。现在,您可以进行与 Opera 内置工具相同的实验并遵循相同的程序。这给我带来了直接的麻烦——Opera 根本拒绝保存密码。即使我尝试过最简单的<form...></form>可能的。解决方案是将另一个网页放到表单的“action = ...”属性指向的位置。在我看来,Opera 会忽略表单,除非它们返回带有重定向的 302/301 代码。像这样:

<?php
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: www.example.com"); 
?>

首先,我制作了非常简单的表单并保存了密码,但无法在真实站点上使用。所以最好是逐步简化。另一个提示是,如果您尝试替换现有密码,最好先删除旧密码。据我所知 Opera 应该替换现有的密码,但是这个棘手的页面对我不起作用。最后 Opera 放弃并保存了我的新密码。不要忘记停止您的网络服务器并删除主机中的条目。Viola - 密码已保存,自动完成功能正在运行。再次感到舒适。但还有更多。当您用 localhost 替换真实网页时,Opera 会看到这一点并给您警告。我担心这可能会破坏这种方法,但幸运的是它没有。好吧,如果在一些 Opera 更新之后,它将有另一个技巧可以尝试。和之前一样,我们尝试用修改过的页面替换页面。但是这一次我们需要使用一些透明的东西,这样 Opera 就不会注意到任何东西。例如我们可以让 Opera 使用代理并尝试使用Proxomitron作为代理。您可能已经猜到了,下一步是放置过滤规则,这将替换页面。另一种方法是使用SquidSquidGuard。我想你明白了,我不会对此进行详细介绍。

您可能会问,为什么要为唯一的目标付出如此多的努力 - 将密码输入 Opera,而它自己无法做到这一点。我可以回答这个问题。那是因为我认为 Opera (以我的拙见!)至少对我来说仍然是最好和最方便的浏览器。另一方面,我不喜欢简单的解决方案。我更喜欢解决方案,它可以毫不妥协地解决提出的问题。

于 2013-01-13T20:30:18.993 回答