亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實用的基于非圖像的驗證碼方法?

實用的基于非圖像的驗證碼方法?

揚帆大魚 2019-07-09 16:10:29
實用的基于非圖像的驗證碼方法?看來我們會增加卡普查支持堆棧溢出。這對于防止機器人、垃圾郵件發送者和其他惡意腳本活動是必要的。我們只想讓人類在這里發布或編輯東西!我們將使用JavaScript(JQuery)CAPTCHA作為第一道防線:http:/docs.jquery.com/tutorials:Safer_Contact_Forms_Win_CAPTCHAs這種方法的優點是,對大多數人來說,驗證碼是看不見的!然而,對于禁用JavaScript的人,我們仍然需要一個退路,這是它變得棘手的地方。我寫了一個ASP.NET的傳統CAPTCHA控件我們可以重復使用。但是,我更愿意使用一些文本,以避免在服務器上使用每個請求創建所有這些映像的開銷。我見過.。ASCII文本Captcha:\/\/(_)\/\/數學難題:什么是7減3乘2?瑣碎的問題:什么味道更好,蟾蜍還是冰棒?也許我只是在向風車傾斜,但我想要一個資源密集的,非形象的。<noscript>如果可能的話兼容驗證碼。想法?
查看完整描述

3 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

我開發的一種方法這似乎是完美的(盡管我可能沒有你收到的評論垃圾郵件那么多),那就是有一個隱藏的字段,并用一個假的值填充它,例如:

<input type="hidden" name="antispam" value="lalalala" />

然后,我有一段JavaScript,它每秒鐘用頁面加載的秒數更新該值:

var antiSpam = function() {
        if (document.getElementById("antiSpam")) {
                a = document.getElementById("antiSpam");
                if (isNaN(a.value) == true) {
                        a.value = 0;
                } else {
                        a.value = parseInt(a.value) + 1;
                }
        }
        setTimeout("antiSpam()", 1000);}antiSpam();

然后,當表單提交時,如果反垃圾郵件的值仍然是“lalalala”,那么我將其標記為垃圾郵件。如果反垃圾郵件值是整數,我將檢查它是否高于10(秒)。如果它低于10,我標記它為垃圾郵件,如果它是10或更多,我讓它通過。

If AntiSpam = A Integer
    If AntiSpam >= 10
        Comment = Approved
    Else
        Comment = SpamElse
    Comment = Spam

其理論是:

  • 垃圾郵件機器人將不支持JavaScript并提交它所看到的
  • 如果bot支持JavaScript,它將立即提交表單
  • 在發帖之前,評論者至少已經閱讀了部分頁面。

這種方法的缺點是它需要JavaScript,如果您沒有啟用JavaScript,您的評論將被標記為垃圾郵件,但是,我確實會檢查標記為垃圾郵件的注釋,所以這不是問題

查看完整回答
反對 回復 2019-07-09
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 660 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號