簡體   English   中英

客戶端驗證發布請求?

[英]Client side validation of a post request?

我在頁面上有一個文本框,當用戶單擊“提交”時,我抓取文本字段並使用jQuery將其發布,如下所示:

$("#text_submit").submit(function(event)){
    user_text = $("input#user_text").val();
    $.post("/create/", { text : user_text }, function(data){
         //display response from server on the page;
    });
    event.preventDefault();
});

然后在服務器端,我將驗證文本(應該是URL)並返回響應。

將用戶在文本框中輸入的內容發布到服務器是否安全? 我需要對用戶文本進行任何客戶端驗證嗎?

我不同意以上文章,即服務器端是雙重檢查還是次要措施。 服務器端驗證是唯一的措施。 可以繞過客戶端驗證。 可以禁用Javascript。

我認為客戶端驗證對用戶更有用。 它避免了因簡單的格式錯誤的數據錯誤而必須進行POST,並為用戶提供有關錯誤的即時反饋。

為了安全起見,您可以依靠服務器端驗證。

另請參閱: JavaScript:客戶端與服務器端驗證

這取決於內容和驗證方式。 如果關閉javascript,我總是會首先在客戶端上進行驗證,然后在服務器上進行驗證作為輔助措施。

作為一般經驗法則(至少在安全性方面),您應該不信任任何用戶,因此,我認為這是明智的選擇,即驗證數據客戶端(也更快),然后,如果通過了第一個驗證,則對其進行驗證服務器端進行“仔細檢查”(如果用戶關閉了Javascript,則需要建立安全網,這在您經常看不到)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM