如何防止Chrome请求保存信用卡信息

8
我正在尝试找到一种方法以编程方式禁用Chrome的“是否保存此信用卡信息”提示。
我已经尝试将autocomplete="off"添加到所有输入以及表单中,但是这个提示仍然会出现。
有没有办法在程序上禁用它?
不幸的是,这与禁用浏览器“保存密码”功能不同,因为这都是围绕着欺骗Chrome认为输入字段不是密码字段/仅使用autocomplete="off",但是Chrome不再承认autocomplete="off"
这就是我所指的横幅:

Do you want chrome to save your credit card information


将该字段命名为其他名称? - epascarello
可能是禁用浏览器“保存密码”功能的重复问题。 - bviale
已经在这里回答了:https://dev59.com/pXVD5IYBdhLWcg3wRpeX - bviale
也可以在这里找到答案 https://dev59.com/1GUo5IYBdhLWcg3w1yPH#29582380 - camiblanch
几乎相同的问题:https://dev59.com/-mgu5IYBdhLWcg3w9ryX - gandra404
7
所有答案都与文本框密码字段相关,并建议在表单上设置autocomplete =“ off”。OP正在询问Chrome中关于信用卡信息的表单,该表单已经有autocomplete =“ off”。我也看到了同样的行为,并且我同意OP的看法,即Chrome没有承认这一点,并且即使表单指定不使用自动完成,仍会提供信用卡详细信息的自动完成。其他问题并未解决此问题,因为它们提出了OP已经尝试过并且已经说明不起作用的事情。 - Robin French
4个回答

3
我所做的是使用一个隐藏字段存储信用卡号码,然后将实际的信用卡号码保存在其中,再通过JScript清除屏幕上的实际信用卡号码。

1
我曾经遇到你正在经历的相同问题,并且使用了更新的浏览器版本。

Save card prompt

为解决此问题,您需要在表单元素中设置自动完成。
<form autocomplete="off" action="/cc.html" method="POST">
    <!-- Form fields -->
    <input type="text" name="cc" id="cc" />
    <!-- More form fields -->
</form>

由于某些原因,Google Chrome 忽略了在 <input type="text" /> 中设置的 autocomplete="off",但是如果你在 <form> 中设置,它不会提示信用卡信息。

0

我尝试了所有的方法,但都没有成功。最终,我解决这个问题的方法是用一个包含“信用卡号码”字样的图片替换我的标签,这个方法非常有效。

<div class="field">
   <div class="label">
      <img src="../images/cc-number.png">
   </div>
   <div class="value">
      <input type="text" name="ccnumber" id="ccnumber">
   </div>
</div>

1
这个答案在我看来是把一个问题(可访问性)换成了另一个问题。 - k3davis

-4

Chrome忽略autocomplete =“off”的原因是有充分的理由的-决定用户浏览器是否保存信息不归您决定。因此,没有办法以编程方式禁用此功能。

您可以通过在chrome:// flags中设置适当的标志使Chrome尊重autocomplete =“off”,这将使您获得所需的结果,但这只会影响您的浏览器-再次强调,用户可以自行决定如何处理他们的信息。


8
我不同意。我知道我的网页在要求商家提供其他人的信用卡号码。Chrome试图自动填充当前用户的信用卡号码,这完全是没有用也不正确的。我不希望我的用户必须在chrome://flags中进行调整。 - WW.
除了提到的技巧之外,也许您可以对字段名称进行排列组合(始终附加一些随机哈希值),在处理返回的表单值时进行过滤(规范化)(表单中始终只有一个(cardno.*)-value,很容易使用正则表达式匹配...)。 - Frank N
问题在于,由于网络浏览器中黑客攻击的安全漏洞不断增加,我们必须遵守商家的安全要求。这是必须的。此外,我们有一个经销商知道每个客户的信用卡信息,这也违反了商家的安全规定。 - fletchsod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接