2013-02-15 62 views
0

我正在爲我的網站實施3D CAPTCHA在會話中存儲多個CAPTCHA解決方案

我最初的想法是將預期的驗證碼解決方案存儲在會話變量中。用戶提交表單後,我會將其與他們的回覆進行比較。

如果用戶在多個選項卡中打開我的網站,會發生什麼?對於每個選項卡,將生成一個新的驗證碼挑戰,並覆蓋會話中的預期響應變量。

現在考慮用戶在「舊」選項卡中提交表單。由於會話中的預期響應變量已被覆蓋,因此它們不會通過測試。

我應該擔心這個嗎?你將如何處理它?

+0

不用擔心。你不能可靠地識別頁面請求來自哪裏(不同的選項卡?不同的窗口?)。由於「最後」窗口的驗證碼覆蓋設置,因此最多隻會在「較早」的窗口中出現故障。他們加載另一個驗證碼並關閉它們。 – 2013-02-15 15:31:50

+0

@MarcB:謝謝,只是想確定這不是一個壞習慣。 – packet 2013-02-15 15:47:03

回答

0

這是驗證碼的一般方法,有時也是他們不驗證的原因。

這是一個goood讀http://www.sitepoint.com/captcha-inaccessible-to-everyone/爲什麼不使用驗證碼

然而,你可以在一個陣列中添加它們來代替,看看是否在陣列中存在問題的答案。 你沒有說明你正在使用哪種語言,否則我可以提供一些代碼。

+0

將數組存儲在php會話中:http://www.phpriot.com/articles/intro-php-sessions/7 – 2013-02-15 15:38:13

+0

我正在使用python和django。無論如何,我很懶,所以我會和@MarcB建議的一樣。我讀了你鏈接的文章。不幸的是,它沒有建議任何CAPTCHA選擇。 – packet 2013-02-15 15:44:39

+0

替代選擇:對於一個你可以添加(不可見)的輸入,不應該包含文本機器人經常填寫每個字段。如果這樣做,它肯定會更容易爲用戶。 二級你可能會看看http://www.projecthoneypot.org/ 對不起,不是很擅長python,但這似乎接近你的問題的解決方案: http://www.djangofoo.com/57/會話數組列表 - 添加 - 不 - 不工作 – 2013-02-15 15:56:33

相關問題