4

我正在考虑在我的网络应用程序中使用输入类型标签,例如

<input type="email">  
<input type="number" required="required">

我只是好奇使用它们有多安全,是否有任何选项可以让用户从浏览器中禁用它们。

4

8 回答 8

6

他们不安全。

你永远不能指望他们被处决。

您不能跳过服务器端输入检查。

于 2013-04-04T05:06:49.050 回答
3

HTML 表单只是用户输入数据的界面。您的服务器收到的是一个 HTTP 请求,浏览器使用表单中输入的数据构建该请求。但是任何人都可以随时向您的服务器发送任何类型的 HTTP 请求,完全独立于任何 HTML 表单或网站。

没有什么客户端是“安全的”。

于 2013-03-23T11:59:26.097 回答
3

它们可以安全使用,但请避免使用正则表达式。

一些浏览器不支持标签。例如 Safari 不支持<input type="email">. 相反,即使它是无效的电子邮件地址,它也会将其视为type="text"并接受。abc@xyz有关详细信息,请参阅此 Stack Overflow问题

于 2013-04-04T10:40:06.870 回答
2

对于输入法,HTML5 与 HTML4 一样安全,您的元素应由 JavaScript 或 PHP 控制。

服务器端验证是确保它们安全的最佳方式。

于 2013-04-10T06:51:12.537 回答
2

HTML5与输入法的 HTML4 一样安全,您的元素应该由用户控制JavaScript or PHP并让它们验证用户输入的数据。

如果您担心与新的 HTML5 标签的兼容性,那么您应该使用包含两全其美的 HTML5Shiv。

于 2013-04-18T11:10:58.453 回答
1

它们可以安全使用。用户不能禁用它们,如果浏览器不支持它们,它们的行为将类似于常规输入 type=text 元素

于 2013-03-23T11:52:55.927 回答
1

如果浏览器不理解某个类型,它将被视为text. 不可能说用户是否能够禁用它们,因为这里的人可能不知道的人在某处使用了一个不起眼的浏览器。防御性代码(如果它被禁用,请做好准备),但使用现有的功能。

于 2013-03-23T11:53:38.700 回答
1

任何不知道这些新输入标签的旧浏览器都会至少将它们视为text inputs服务器端检查必不可少。

编辑:如果我的原始答案不清楚,但我并不是说只应在服务器端检查新标签。我只是想澄清一下,你不能仅仅因为前端有相应的输入就相信输入是有效的。

于 2013-03-23T11:53:54.080 回答