我想在我的网络应用程序中使用输入类型标签,如
<input type="email">
<input type="number" required="required">
我只是好奇使用它们的安全性,是否有任何选项,因此用户将从浏览器中禁用它们。
答案 0 :(得分:6)
他们不安全。
你永远不能指望他们被执行。
您无法跳过服务器端输入检查。
答案 1 :(得分:3)
HTML表单只是一个界面,供用户输入数据。您的服务器收到的是HTTP请求,浏览器使用输入到表单中的数据构建该请求。但任何人都可以随时向您的服务器发送任何类型的HTTP请求,完全独立于任何HTML表单或网站。
没有任何客户端是“安全的”。
答案 2 :(得分:3)
它们使用安全,但请避免使用常规表达。
某些浏览器不支持这些代码。例如,Safari不支持<input type="email">
。相反,它会将其视为type="text"
,即使它是无效的电子邮件地址,也会接受abc@xyz
。有关详细信息,请参阅此堆栈溢出question。
答案 3 :(得分:2)
HTML5与输入法的HTML4一样安全,您的元素应该由JavaScript或PHP控制。
服务器端验证是保证其安全的最佳方式。
答案 4 :(得分:2)
HTML5
与输入方法的HTML4一样安全,您的元素应由JavaScript or PHP
控制,并让它们验证用户输入的数据。
如果您担心与新HTML5标记的兼容性,那么您应该使用HTML5Shiv,其中包含两个世界中最好的。
答案 5 :(得分:1)
它们可以安全使用。用户无法禁用它们,如果浏览器不支持它们,它们的行为就像常规输入类型=文本元素
答案 6 :(得分:1)
如果浏览器不了解某种类型,则会将其视为text
。不可能说用户是否能够禁用它们,因为这里的人可能不知道某个地方可能存在一个模糊的浏览器。防御性代码(如果它被禁用,请准备好),但使用那里的功能。
答案 7 :(得分:1)
任何不知道这些新输入标记的旧浏览器都会将它们视为至少为text inputs
,从而使服务器端检查不可或缺。
修改:如果我的原始答案不清楚,但我确实不意味着只应在服务器端检查新标签。我只是想明确表示你不能仅仅因为你在前端有相应的输入而相信输入是有效的。