2014-10-26 96 views
0

我正在爲wordpress製作一個簡單的表單模板。我已經寫:如果我使用html 5驗證,是否必須重新檢查服務器上發佈的數據?

<form action="<?php the_permalink(); ?>" id="productForm" method="post"> 

    <table> 

     <tr> 
      <td>Address:</td> 
      <td><input type="text" name="address" required="required" placeholder="Enter place"></td> 
     </tr> 

     <tr> 
      <td>Email:</td> 
      <td><input type="email" name="email" required="required" placeholder="Enter email"></td> 
     </tr> 

     <tr> 
      <td>Size:</td> 
      <td><input type="number" size="3" placeholder="x" name="x-size" required="required" min="1"> 
       <input type="number" size="3" placeholder="y" name="y-size" required="required" min="1"> 
       <input type="number" size="3" placeholder="z" name="z-size" required="required" min="1">cm 
      </td> 
     </tr> 

    </table> 
    <input type="hidden" name="submitted" value="true"> 
    <button type="submit" value="submitted">Submit</button> 
</form> 

它會檢查每個值,我需要,但我要再次檢查它與PHP的安全服務器上?

+1

當我的用戶代理不支持您喜歡的html5檢查時,您會怎麼想?當我沒有任何瀏覽器發佈數據時會發生什麼? – PeeHaa 2014-10-26 19:48:37

+1

惡意Malcolm將您的HTML保存到磁盤,撕掉驗證,從磁盤加載HTML,並向您發送SQL注入,XSS,CSRF,喝你的啤酒,偷走你的女朋友,並將髒髒的襪子留在枕頭上會發生什麼? – 2014-10-26 20:07:54

回答

1

是的,你需要檢查它的服務器端。客戶端驗證可以爲您的網站添加一些設計,但任何客戶端都可以輕鬆地由用戶操作。確保驗證和消毒您計劃存儲到數據庫中的任何數據始終是一個好主意。

你可以找到http://premium.wpmudev.org/blog/how-to-build-your-own-wordpress-contact-form-and-why/這些信息只是向下滾動到驗證和訪問環衛http://devotepress.com/wordpress-coding/data-validation-and-sanitization-wordpress/#.VE1TAvnF-LU

希望這有助於。

1

是的,你應該重新檢查服務器端,因爲任何客戶端驗證都可以被任何人刪除。

+0

但是,我應該重新檢查它是否像if(isset($ _ POST ['x-size'])或簡單如果它是一個數字? – Cirvis 2014-10-26 19:41:12

+1

如果您使用它來執行任何類型的邏輯或者您有任何類型的限制你會期待變量被驗證。 – 2014-10-26 19:43:44

0

您應該始終驗證服務器端的數據。客戶端驗證不可靠。可靠的「可以被篡改」。

1

客戶端驗證是爲了更好的用戶體驗,而服務器端是爲了安全&可靠性,因爲客戶端驗證可以被最終用戶繞過。

相關問題