为可以';客户不得复制

本文关键字:客户 复制 | 更新日期: 2023-09-27 18:29:14

是否可以将密码文本框文本设置为用户无法在其端复制的文本?

比如是否有只能从服务器设置的特殊字符?

例如,一种方法是使用javascript来防止键入*,并将文本框文本设置为所有*。但这太离谱了。

其动机是能够在服务器上告知用户是否更改了密码,但不限制他们使用所有*的密码。

为可以';客户不得复制

,我认为这是不可能的。

编辑

为什么不使用不符合密码长度、允许字符等规则的默认密码。?(即使您允许所有字符,允许一个字符的密码也不是一个真正的选项,是吗?)

我同意不可能指定用户不能自己输入的字符;然而,对于普通用户来说,输入某些字符可能极其困难。

更详细地说;使用Windows中的标准US 104键键盘,可以通过按住Alt并使用数字键盘键键入字符代码来输入Unicode字符代码。因此,有人可以输入一个不会出现在键盘上的字符,并且不能用修饰键和字母键组合键入。地球上99%的计算机用户不知道这是可能的,即使剩下的1%也可能不得不查找特定非标准字符的代码。

现在,其他使用拉丁字符,但带有重音标记和其他修饰的语言,可以更容易地访问修饰键组合,允许用户键入重音字母,就像英语使用者使用大写字母一样。显然,使用不同字符集的地区的用户拥有键盘,只需按下一个键就可以键入看似非常深奥的符号。其中一种文化中的用户将更容易访问US 104关键用户难以访问的字符。

因此,不可能从代码中指定Unicode代码页中的字符,用户无法在键盘上重现该字符。然而,他们必须确切地知道使用的是哪个字符及其Unicode代码,才能复制它

您可能想要使用TAB字符(即"''t&")。但我相信有更好的方法来做你想做的事情。

编辑

我想我明白你现在的要求了。

这应该做你想做的事。它是javascript,但非常简单。

<input type="password" name="userpass" value="          " onfocus="if(this.pwclick == undefined){ this.default = this.value; this.value=''; this.pwclick = 1;}" onblur="if(this.value == ''){this.value = this.default;this.pwclick = undefined;}" />

然后在后端只需执行以下操作,即使用户关闭了javascript,也会导致javascript兼容。

if(userpass.Trim().Length > 0{
  # actions to change the user's password
}

只需添加另一个隐藏字段,该字段的初始化文本与密码文本框的初始化文本相同。然后,如果它们在提交时仍然相同,则给它们一个错误。