Javascript 对于安全登录表单,所需属性是否足够?

Javascript 对于安全登录表单,所需属性是否足够?,javascript,html,Javascript,Html,我在HTML中这样做(注意标记末尾的required): 或者,当HTML代码中存在required属性时,根本不值得使用此JavaScript代码 或者出于安全目的同时使用两者是否安全?您必须始终验证服务器上的数据。required属性只是向浏览器指示,它不应让用户在未填写该字段的情况下提交表单,但没有任何东西可以阻止用户通过DevTools使用JavaScript提交表单,甚至直接向服务器发出请求 必需的属性不提供任何安全性。 但是,如果发送到浏览器的代码已经处理了这些错误,则不需要提供来自

我在HTML中这样做(注意标记末尾的
required
):

或者,当HTML代码中存在
required
属性时,根本不值得使用此JavaScript代码

或者出于安全目的同时使用两者是否安全?

您必须始终验证服务器上的数据。
required
属性只是向浏览器指示,它不应让用户在未填写该字段的情况下提交表单,但没有任何东西可以阻止用户通过DevTools使用JavaScript提交表单,甚至直接向服务器发出请求

必需的
属性不提供任何安全性。


但是,如果发送到浏览器的代码已经处理了这些错误,则不需要提供来自服务器的错误消息。一个
400
状态代码就足够了。

您可以在前端页面进行验证,然后将数据发送到服务器,这样可以节省时间和数据消耗,@CodeBug意味着只需使用
Required
就可以了?这是不必要的,而且它不提供任何真正的验证,因为必须在服务器端进行验证。但是你仍然应该使用它来提高可用性,因为它可以帮助你的用户知道他们必须做什么,并且让他们更快、更容易。这意味着仅仅使用Required是绝对好的吗这绝对是不可能的!验证必须始终在服务器端执行,因为用户很容易禁用客户端验证。至于额外的JS,您可以定制错误消息,使其在JS中更具信息性,并且您通常需要比只需要或不需要更复杂的验证。是的,就是这样!正如我所说,很容易绕过网页本身的任何验证或安全性。这对用户有利,但对您没有任何好处:)这适用于所有客户端验证,包括JavaScript。
<input type="email" class="form-control" id="email" name="email" required>
//Get values from HTML
var {email} = req.body;

//If email is empty
if(!email) {
  return res.status(400).render('login', {
   message: 'Please provide an email and password') //Provide a message on the HTML template
   });
}