问题:现在网站广泛使用JavaScript,这有时会让Opera难以记住密码。 有趣虽然Opera仍然可以填写表格,但既不能记住新密码也不能更新现有密码。 问题是,如果Opera忽略这些密码,如何将密码保存到Opera中?
仅供参考:我尝试过使用相同结果的Internet Explorer。令我惊讶的是,Firefox设法记住了密码,但我仍然喜欢Opera。
答案 0 :(得分:1)
我有一个密码,很久以前就被记住了。幸运的是,网站设计者从未改变认证机制(即表单/字段名称,动作URL等)。尽管如此,他们使用JavaScript自动完成仍然有效。一旦他们改变了提出挑战的网站域名。原来,Opera无法在新域上保存密码,但可以在以前的域名在线时替换它。后来他们添加了更多的JavaScript,因此让Opera记忆变得更加困难。
让我们逐一考虑这个问题。 首先要尝试Opera内置的“View Source”来修改授权网页客户端,应用更改并尝试一下。要尝试:从剥离JavaScript(例如等)和样式(“onmouseclick(), onkeypress()”,“style=...”等)开始逐步简化class=...。我第一次使用这种技术设法保存密码。您也可以尝试Opera Dragonfly。
遗憾的是,在上述第二种情况下,这是无用的。那么这次的想法仍然是一样的,但我们必须欺骗Opera。这次我们需要一个至少支持PHP(或您首选的脚本语言)的网络服务器。出于安全原因,我不建议您使用您的网络托管等。我们应该在本地运行服务器好的例子是xampp。首先,我们需要从未经编辑的真实网络服务器下载我们的登录页面(在“查看源代码”中进行实验后不要复制粘贴!)。我们不需要资源(样式/脚本),所以不要费心去获取它们。接下来我们需要欺骗Opera。这很简单。您应该在hosts文件中添加一条记录,将您的网页指向localhost。这样的事情:127.0.0.1 www.example.com
。查看您的网页来源,您可能需要添加其他条目,例如127.0.0.1 login.example.com
。完成后启动本地Websever并确保它在localhost(或任何其他相应端口,如果原始Web服务器位于不同端口)上侦听80端口。服务器成功启动后(请参阅日志确定),您应该将保存的网页放在本地服务器上与在真实网络上完全相同的位置。那是login.php
或auth/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作为代理。您可能已经猜到,下一步是放置过滤规则,这将取代页面。另一种方法是使用Squid和SquidGuard。我想你有这个想法,我不会详细介绍这个。
你可能会问为什么一个人会用唯一的目标做这么多的努力 - 将密码放入Opera中,而不是自己的密码。我可以回答这个问题。那是因为我觉得Opera(在我看来很简单!)仍然是最好的,也是最方便的浏览器,至少对我而言。另一方面,我不喜欢简单的解决方案。我更喜欢解决方案,它可以毫不妥协地解决问题。