2010-02-21 52 views
3

我正在開發一個Flash註冊表單,我需要結合動態「驗證碼」圖像進行確認。 任何人都可以推薦一個最好的解決方案嗎?在Flash中實現驗證碼

+0

定時下載Flash並填寫表格?聽起來像一個複雜的機器人。但我不懷疑它們存在。但是,如果他們這樣做,那麼JavaScript可以在簡單的網站中進行混淆?我想有人可以填寫你的表格,然後複製POST值並重新提交。 – alex 2010-02-21 23:15:46

回答

0

這與真正的HTML表單中的驗證碼沒有什麼不同。

假設您在服務器上使用了php,並且您有一個captcha.php scritp,它生成驗證碼圖像並將其值保存在會話中。在HTML表單中,您可以使用元素並將其src設置爲captcha.php。用戶會用圖片中看到的文字填充一個字段。在接收帖子的腳本中,您將檢查用戶輸入是否與會話值匹配。

在Flash形式中,它完全一樣。您加載調用captcha.php的圖像並要求用戶輸入額外的字段。然後,當您將數據發佈到服務器時,您在captcha字段中傳遞用戶鍵入的值,並且服務器將該值與您在調用captcha.php時存儲在會話中的值進行匹配。

所以,基本上,它和HTML格式一樣。

2

製作強大的驗證碼並不是一項簡單的任務。機器人必須足夠艱難才能失敗,但對於人類來說足夠容易成功......我會看看現有系統並可能使用它們。 reCAPTCHA很受歡迎http://recaptcha.net/。它可能通過閃光使用它,但我沒有看過它。

5

驗證碼用於防止機器人提交html表單,這很容易完成,因爲html易於理解和編程處理。 Flash應用程序也是如此。如果bot沒有專門針對您的網站,那麼bot一般很難提交Flash表單。

因此,您無需擔心在使用Flash應用程序時captcha解決的垃圾郵件問題。

+2

,如果您後來發現這是一個問題,則很容易返回並添加。 – cobbal 2010-02-21 23:16:19

0

機會是,機器人不會寫入您的網站。如果需要出現,一個簡單的「爲我添加這兩個數字,k?」會很簡單。

坦率地說,我懷疑有人會寫的信認簽了幾百次在您的網站=/

你應該更擔心有人拆卸[或任何閃光術語] .swf文件s和簡單地發送「註冊」消息到您的服務器=/

是的,因此,我試圖暗示Captcha必須應用於服務器端,或者,實際上,它並不難。

0

我們強烈需要將CAPTCHA實現爲Flash動畫/表單。

要注意的最重要的一點是FF或IE(不記得哪一個)不會使用Web服務調用返回任何cookie。所以,如果你提交你的表單到。網絡服務不能使用http請求的會話狀態來存儲驗證碼文本,然後將用戶輸入的驗證碼值與網絡服務(會話啓用的網絡方法)進行比較。

我們執行以下操作:

  • 網頁
  • 通此令牌作爲Flash變量Flash影片
  • 負載驗證碼圖像與標記爲一網址PARAM閃光燈上設置一個獨特的標記值(GUID)。該請求期間即captchaImg.aspx?T = XXXXXXX
  • 保存在一個表中的隨機驗證碼文本與令牌
  • 當用戶提交他們的形式,用一個表中的
  • 比較令牌和用戶輸入的驗證碼值

這種方法對我們非常有效。

這也是網絡農場的安全。

0
public class Captcha extends Sprite{ 

    private var question:String = "How do you feel?";   
    private var _answer:String; 
    private var isRobot:Boolean; 

    public function Captcha(answer:String){ 
      _answer = answer; 
     } 
    public function checkAnswer():Boolean 
     if(answer != "sad"){ 
      isRobot = true; 
      return isRobot; 
     }else{ 
      isRobot = false; 
      return isRobot; 
     } 
    } 
}