簡體   English   中英

防止機器人提交表單的JavaScript代碼

[英]javascript code to prevent bots from submitting form

我需要一個JavaScript代碼來防止漫游器提交表單。 但是我需要javascript中的客戶端代碼,其工作方式類似於CAPTCHA,但不要調用服務器

謝謝

最簡單直接的方法是在實際單擊按鈕時即時添加或編輯表單數據:

<input type="hidden" name="SubmittedByHuman" value="NO" />
<input type="submit" value="Submit me" onclick="this.form.elements['SubmittedByHuman'] = 'YES';" />

有了這個,在服務器端檢查名為“ SubmittedByHuman”的表單元素的值-如果它將為“ NO”,則表示某些內容繞過了提交按鈕-或正如人們在注釋中正確提到的那樣,用戶確實單擊了但禁用了JavaScript。

做類似的事情

<h1>Type the result in the input box : 1+1</h1>

<input id="sum" type="text"/>

在提交之前,請檢查輸入中的值是否為2,然后提交。

為了改進這種類型的代碼,您可以在h1中隨機創建這兩個值,並將它們保存到var中,然后在提交輸入和總和是否相同之前進行檢查。

我懷疑這是否可能,因為機器人足夠復雜,可以繞過大多數東西。

請記住,該機器人不會在瀏覽器中打開網頁並按提交。 它可能會在頁面上掃描<form> ,列出所有<input>字段,然后執行POST請求,其中包含每個<form>的所有數據。

它不會運行任何JavaScript或按任何按鈕。 您必須在服務器端進行檢查。

暫無
暫無

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

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