javascript 关于HTML表单验证,我需要担心什么?

oxalkeyp  于 2023-01-07  发布在  Java
关注(0)|答案(2)|浏览(204)

我正在使用HTML创建一个简单的表单,并希望确保我没有遗漏和安全漏洞。我不太了解攻击,但我认为必须有更多的消息字段,因为几乎任何东西都可以在那里输入。我可以限制为文本,但认为这可能不是很用户友好。
有人能打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();
    }
  }
xuo3flqw

xuo3flqw1#

客户端验证(HTML5或JavaScript)只对改善访问者的体验有用--任何攻击者都可以轻松绕过它。它用于在访问者提交到服务器之前警告他们输入的内容是错误的。
如果您想担心安全性,那么您需要在服务器端进行,并且它需要与您对数据所做的操作相关联。

ef1yzkbh

ef1yzkbh2#

限制html表单的最大长度并不能防止攻击者伪造一个虚假的提交--那将对发送到服务器的内容没有限制。所以,它根本没有安全价值。你必须检查服务器接收到的所有数据,你必须考虑到它可能是危险的。这不是一个微不足道的任务。

相关问题