首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

禁用瀏覽器表單自動完成功能的完整指南

     編輯:ASP.NET 基礎

瀏覽器的自動完成功能雖方便,但在銀行帳號、密碼、信用卡號等敏感資訊輸入框中會造成安全隱患。開發者無法強制用戶關閉瀏覽器設定,但可透過 HTML 屬性與 JavaScript 從頁面層面禁用該功能。

核心屬性:autocomplete

IE 5.0+、Firefox、Chrome、Edge 均支援 autocomplete 屬性,值為 on(預設)或 off。

1. 整個表單禁用

<form method="post" action="submit.asp" autocomplete="off">
  <!-- 表單內所有 input 將繼承 off -->
</form>

2. 單一輸入框禁用

<input type="text" name="creditcard" maxlength="16" autocomplete="off" />
<input type="password" name="pwd" autocomplete="off" />

3. JavaScript 動態設置

function disableAutoComplete(element) {
    element.setAttribute("autocomplete", "off");
}
// 使用範例:頁面載入後針對特定元素
window.onload = function() {
    disableAutoComplete(document.getElementById("txtCardNo"));
};

ASP.NET WebForms 控件設置

.NET 2.0+ 的 TextBox 控件提供 AutoCompleteType 屬性,設為 Disabled 即可:

<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" AutoCompleteType="Disabled" />

或在代碼後置:

txtPassword.AutoCompleteType = AutoCompleteType.Disabled;

補充:禁用輸入法(IME)

若需禁止中文輸入法(僅限制輸入法切換,不防複製貼上):

<input type="text" style="ime-mode: disabled;" />
<asp:TextBox ID="txtEnglishOnly" runat="server" Style="ime-mode: disabled;" />

注意:此 CSS 僅在 IE/Edge(舊版)生效,現代瀏覽器建議使用 inputmode="latin" 或配合正則驗證。

最佳實踐建議

  • 所有密碼框(type="password")務必加上 autocomplete="off"。
  • 信用卡號、身分證字號、驗證碼等敏感欄位單獨設置 off。
  • 登入表單建議整個 <form autocomplete="off">,並配合 AutoCompleteType="Disabled" 雙重保險。
  • 現代瀏覽器可能忽略 autocomplete="off"(特別是密碼管理器),可嘗試 autocomplete="new-password" 或 autocomplete="one-time-code" 引導瀏覽器行為。

正確配置自動完成屬性,是保護用戶隱私與帳號安全的基礎防線之一。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved