我正在考虑在我的网络应用程序中使用输入类型标签,例如
<input type="email">
<input type="number" required="required">
我只是好奇使用它们有多安全,是否有任何选项可以让用户从浏览器中禁用它们。
我正在考虑在我的网络应用程序中使用输入类型标签,例如
<input type="email">
<input type="number" required="required">
我只是好奇使用它们有多安全,是否有任何选项可以让用户从浏览器中禁用它们。
他们不安全。
你永远不能指望他们被处决。
您不能跳过服务器端输入检查。
HTML 表单只是用户输入数据的界面。您的服务器收到的是一个 HTTP 请求,浏览器使用表单中输入的数据构建该请求。但是任何人都可以随时向您的服务器发送任何类型的 HTTP 请求,完全独立于任何 HTML 表单或网站。
没有什么客户端是“安全的”。
它们可以安全使用,但请避免使用正则表达式。
一些浏览器不支持标签。例如 Safari 不支持<input type="email">
. 相反,即使它是无效的电子邮件地址,它也会将其视为type="text"
并接受。abc@xyz
有关详细信息,请参阅此 Stack Overflow问题。
对于输入法,HTML5 与 HTML4 一样安全,您的元素应由 JavaScript 或 PHP 控制。
服务器端验证是确保它们安全的最佳方式。
HTML5
与输入法的 HTML4 一样安全,您的元素应该由用户控制JavaScript or PHP
并让它们验证用户输入的数据。
如果您担心与新的 HTML5 标签的兼容性,那么您应该使用包含两全其美的 HTML5Shiv。
它们可以安全使用。用户不能禁用它们,如果浏览器不支持它们,它们的行为将类似于常规输入 type=text 元素
如果浏览器不理解某个类型,它将被视为text
. 不可能说用户是否能够禁用它们,因为这里的人可能不知道的人在某处使用了一个不起眼的浏览器。防御性代码(如果它被禁用,请做好准备),但使用现有的功能。
任何不知道这些新输入标签的旧浏览器都会至少将它们视为text inputs
服务器端检查必不可少。
编辑:如果我的原始答案不清楚,但我并不是说只应在服务器端检查新标签。我只是想澄清一下,你不能仅仅因为前端有相应的输入就相信输入是有效的。