簡體   English   中英

如何防止禁用了JavaScript的用戶提交表單?

[英]How can I prevent users with javascript disabled from submiting a form?

我們有一個查詢表,要求JS用戶至少輸入他們的姓名,位置,聯系信息,評論/問題等。我們已經獲得了很多完全空白和半空白的表單。 我們知道,如果用戶禁用了JS,他們可以單擊“提交”按鈕而未填寫任何內容。我已經研究了禁用提交按鈕(除非啟用了JS)的可能性,但是我讀過很多人認為是個壞主意。 有什么建議嗎? 謝謝!

您不能阻止各種技術提交空白表格。 您的服務器應驗證表單並拒絕不正確的提交。 這是任何接受來自任何外部源的數據的服務器的核心基礎。 在接受數據之前,它必須進行自己的數據驗證。

可以進行某種形式的配置,以使瀏覽器在未啟用JavaScript的情況下無法通過普通瀏覽器將其提交到您的網站。 例如,如果HTML中沒有針對表單的默認操作,並且僅以javascript實現了commit操作,那么如果禁用了javascript,則不會提交表單。 仍然存在其他無需客戶端驗證即可提交數據的方法,這就是為什么始終需要服務器端驗證的原因,但這可能會阻止一些用戶錯誤,直到他們到達您的服務器為止。

您還可以使用<noscript>標記來告知用戶需要javascript。


您只需在字段中包含一個通過javascript填充了已知值的表單,就可以立即從機器人服務器端識別許多表單提交。 如果在您的服務器上收到表單時,該表單中不存在該已知值,則該表單可能是由啟用了JavaScript的瀏覽器以外的其他人提交的。

您可以通過僅在HTML中不使用常規表單操作來阻止自動機器人提交。 如果提交URL僅在您的javascript中,並且提交僅通過javascript完成,則大多數機器人將永遠不會看到它,甚至都不知道嘗試(因為它們沒有運行javascript)。

僅供參考,后兩種技術都不會阻止黑客提交流氓表單/數據,因為他們可能會分析足夠多的東西以了解丟失的內容,但是它們可以幫助識別自動進行的提交嘗試。

在您的服務器端,Thais php在放入數據庫或任何其他操作之前會trim數據。 修剪可刪除空白區域。另外還要檢查sql injections

見這里修剪

SQL注入

首先,使用noscript標記告訴用戶他們在加載表單時需要javascript。

其次,由於無法始終完全阻止表單提交,因此將HTML表單提交到不處理提交而是告訴他們必須具有javascript的頁面。 要在表單頁面上處理正確的提交,請使用javascript將表單提交操作更改為正確的提交頁面。

暫無
暫無

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

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