繁体   English   中英

正确的HTML5表单验证

[英]Proper HTML5 form validation

我正在使用HTML5创建一个简单的<form> 只是想确保我没有丢失和安全漏洞。 我对攻击了解不多,但我当时想在消息字段中必须有更多内容,因为几乎可以在其中键入任何内容。 我可能只限于文本,但认为可能不是非常用户友好。

有人可以键入任何类型的250个字符是否更重要? 这样做有害吗?

<form id="contact_form_id" method="POST" action="" name="contact_form">   
   <input class="contact_single_line" type="text" id="fname" name="fname" minlength="2" maxlength="25" required type="text" onkeypress="return isAlpha(event)"></input>
   <input class="contact_single_line" type="text" id="lname" name="lname" minlength="2" maxlength="25" required type="text" onkeypress="return isAlpha(event)"></input>
   <input class="contact_single_line" type="email" id="email" name="email" minlength="3" maxlength="45" required placeholder="Enter a valid email address" TextMode="email" required data-errormessage-type-mismatch="Invalid!"></input>
   <textarea id="message" name="message" minlength="2" maxlength="250" required></textarea>
   <input type="submit" name="submit" id="contact_submit_btn" value="SUBMIT"></input>
</form>

还使用此isAlpha函数作为备份。 不确定我已经有HTML5验证器是否有必要

function isAlpha (evt) {
    var theEvent = evt || window.event;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode (key);
    var regex = /[A-Za-z_ ]|\./;
    if ( !regex.test(key) ) {
      theEvent.returnValue = false;
      if(theEvent.preventDefault) theEvent.preventDefault();
    }
  }

客户端验证(HTML 5或JavaScript)仅有助于使访问者的体验更好-任何攻击者都可以轻松绕过它。 它用于警告访问者,他们输入的内容是错误的,然后才将其提交到服务器。

如果您要担心安全性,则需要在服务器端进行操作,并且它需要与数据处理内容相关。

限制html表单中的maxlength不会阻止攻击者伪造伪造的提交-对发送到您的服务器的内容没有任何限制。 因此,它根本没有安全性。 必须检查服务器中收到的所有数据,您必须考虑到这可能很危险。 这不是一件容易的事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM