[轉] 採訪 CaptchaMvc 的建立者 Vyacheslav Volkov

來源:互聯網
上載者:User

標籤:style   http   io   os   使用   sp   java   strong   on   

InfoQ 採訪了 CaptchaMvc 的建立者 Vyacheslav Volkov,與他一起探討了CaptchaMvc項目以及他對驗證碼未來的看法。

InfoQ:是什麼促使你建立自己的驗證碼類庫?

那個時候我正開始使用MVC 3架構。因為需要在自己的項目中使用驗證碼,所以我開始尋找一個能夠解決我的問題的解決方案。但是我能夠找到的所有方案都僅能夠在MVC 2上使用,有一些甚至根本無法使用。在搜尋了這麼多內容之後,我決定編寫自己的驗證碼實現,因此也就出現了CaptchaMvc類庫的第一個版本。這個版本非常簡單,但是即使是這樣,它也是受歡迎的。

InfoQ:CaptchaMvc和其他的驗證碼類庫之間有什麼不同?

CaptchaMvc是一個有彈性的、簡單的解決方案,它能夠解決你項目中所有與驗證碼相關的問題。你需要做的所有事情就是向你的項目中添加一個類庫,添加之後驗證碼就準備就緒了。該項目擁有使用驗證碼所需要的所有內容:

  • 有兩種類型的驗證碼,普通的和數學的
  • 支援在session或者cookie中儲存驗證碼
  • 支援“智能驗證碼”
  • 能夠很容易地擴充預設實現

該項目也在不斷地演變,我會盡量支援所有人提出的需求。我認為這些就是區分它和其他項目的主要內容。

InfoQ:你能預見一下什麼時候將不再需要驗證碼嗎?或者說可能不再有效?

我們都在夢想那個時候。針對機器人的保護將會一直需要,而驗證碼僅僅是實現這種保護的方式之一。有各種各樣不需要驗證碼的技術。例如,一些開發人員會建立一個“假的”輸入欄位,同時讓該域對使用者隱藏,當一個機器人試圖填充表單的時候,它很有可能會填寫該域。

儘管如此,我們也很難說驗證碼能夠有效地防止垃圾郵件,有許多服務允許繞過驗證碼。驗證碼僅能夠增強你的網站對機器人的防護,但是並不能提供全面的保護。

InfoQ:你列出該項目支援ASP.NET MVC 3、4和5。這些版本之間真的有很多區別嗎?

這些版本之間幾乎沒有什麼不同,僅僅是類庫中使用了MVC 4中添加的 AllowAnonymousAttribute 屬性。

InfoQ:如果你可以修改ASP.NET MVC外掛程式/類庫支援的任何內容,那麼你會修改什嗎?

ASP.NET MVC是一個非常了不起的Web架構,我喜歡它所使用的架構解決方案。對於ASP.NET Web API有一個地方我不喜歡,那就是我們不能多次讀取請求中的內容。我清楚為什麼要這麼設計,ASP.NET Web API中的內容體被看作是僅能夠讀取一次的單向流,但是有時候這樣讓人非常不方便。

我想要改變 WPF\Silverlight\XAML 中的很多內容,但是這個主題應該在另一個採訪中討論。

InfoQ:什麼是“智能驗證碼”,它和正常的驗證碼之間有什麼區別?

基本的想法是讓驗證碼對使用者更加友好,在最好的情況下使用者永遠不會看到驗證碼。有多種技術能夠讓驗證碼更加友好。例如,有一種技術稱為“假輸入欄位”。CaptchaMvc 支援多種技術能夠區分使用者和機器人。讓我簡短的介紹一下每一種技術:

  • 假的輸入(類名—FakeInputIntelligencePolicy)——使用一個“假的”輸入欄位,正如我前面所寫的。
  • JavaScript(類名—JavaScriptIntelligencePolicy)——嘗試著去檢查使用者是否啟用了JavaScript,如果使用者禁用了JavaScript那麼使用者必須輸入一個驗證碼
  • 回應時間(類名—ResponseTimeIntelligencePolicy)——允許你設定一個時間,在該時間內驗證碼將被認為無效。假如一個機器人請求一個表單,填充它並提交…頁面載入和提交之前的間隔時間可能會少於一秒——沒有人能夠做到這一點。
  • 多種方式的組合(類名—MultiIntelligencePolicy)——允許你將不同的策略聯合到一起。

我想要給出一個允許你設定“智能驗證碼”的程式碼範例,下面是一個我在我的網站上使用的程式碼範例:

CaptchaUtils.CaptchaManager.IntelligencePolicy = new MultiIntelligencePolicy(new FakeInputIntelligencePolicy(),new JavaScriptIntelligencePolicy(),new ResponseTimeIntelligencePolicy(TimeSpan.FromSeconds(3)));

現在,我正編寫一個將會支援ASP.NET Web API的新版本。到目前為止這就是我的所有計劃,但是將來的事情可能會有所變化,我將會添加一些其他的內容。

查看英文原文:Interview with Vyacheslav Volkov, Creator of CaptchaMvc

[轉] 採訪 CaptchaMvc 的建立者 Vyacheslav Volkov

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.