簡體   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