Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新的HTML5输入标签有多安全_Html_Html Input - Fatal编程技术网

新的HTML5输入标签有多安全

新的HTML5输入标签有多安全,html,html-input,Html,Html Input,我正在考虑在我的web应用程序中使用输入类型标记,如 <input type="email"> <input type="number" required="required"> 我只是好奇使用它们有多安全,是否有任何选项可以让用户从浏览器中禁用它们 它们使用安全。用户无法禁用它们,如果浏览器不支持它们,它们的行为将类似于常规输入类型=文本元素如果浏览器不理解某个类型,它将被视为文本。很难说用户是否能够禁用它们,因为这里的人可能不知道某个地方使用了一个模糊的浏览

我正在考虑在我的web应用程序中使用输入类型标记,如

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


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

它们使用安全。用户无法禁用它们,如果浏览器不支持它们,它们的行为将类似于常规输入类型=文本元素

如果浏览器不理解某个类型,它将被视为
文本
。很难说用户是否能够禁用它们,因为这里的人可能不知道某个地方使用了一个模糊的浏览器。防御性地编写代码(如果已禁用,请做好准备),但要使用现有的功能。

任何不知道这些新输入标记的旧浏览器都将至少将其视为文本输入,因此服务器端检查必不可少

编辑:如果我的原始答案不清楚,但我确实不清楚,则表示只应在服务器端检查新标签。我只是想说明,您不能仅仅因为前端有相应的输入就相信输入是有效的

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

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

它们不安全

你决不能指望他们被处决


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

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


有些浏览器不支持这些标记。例如,Safari不支持
。相反,它会将其视为
type=“text”
,并接受
abc@xyz
即使是无效的电子邮件地址。有关更多信息,请参阅此堆栈溢出。

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


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

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


如果您担心与新的HTML5标记的兼容性,那么您应该使用HTML5Shiv,它包含了两个方面的优点。

required=“required”属于输入标记。定义“safe”的确切含义。即使浏览器知道所有类型,您也必须进行额外的服务器端检查。当然,但我认为这是OP所问的,所以我只是回答了他的问题。我不知道为什么在回答OPs问题时会被否决。我想你不是建议只使用Javascript进行验证,对吧?仅客户端验证很少是个好主意。举个例子:用户可以很容易地进入浏览器控制台,从HTML中删除
输入
元素的属性(例如
必需的
最大长度
)或事件(例如
提交
),并在不回答您的约束的情况下成功提交表单。如果没有客户端验证,您肯定会陷入困境。另外,检查下面deceze的答案。它也有一些金块。