我想創建一個花哨和易於使用的captcha我的註冊通過使用滑塊,用戶可以證明他是一個人,沒有劇本。如何使用jQuery UI滑塊構建安全驗證碼?
到目前爲止,我使用jQuery UI Slider實現了滑塊,如果值爲100,則會出現提交按鈕。看起來不錯,我對這種行爲感到滿意。
但是由於JS被客戶端執行,所有人都能夠看到我的代碼,並且可以通過使用腳本觸發相同的操作。對於腳本,如果按鈕可用或不可用,則不會有任何區別。腳本只發布數據以提交表單,而我的滑塊驗證碼沒用。
我簡單的JS代碼:
$(function() {
$("#slider").slider({
value:0,
min: 0,
max: 100,
step: 50,
slide: function(event, ui) {
if(ui.value == 100){
$("#amount").val("human");
$("#regButton").slideDown();
} else if (ui.value == 50) {
$("#amount").val("nerd");
$("#regButton").slideUp();
} else {
$("#amount").val("script");
$("#regButton").slideUp();
}
}
});
$("#regButton").hide();
$("#amount").val("Script");
});
HTML:
<label for="amount" style="text-align:right;">I'm a:</label>
<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold; width: 197px;" />
<div id="slider"></div>
是否有可能建立驗證碼保護?使用serverside散列?設置標誌?什麼是實踐歸檔安全與花哨的用戶界面和多一點用戶體驗比輸入字母。
我在服務器端使用Java EE和Spring MVC。如果使用滑塊而不是reCaptcha,那會很好。
編輯:我添加了一個哈希值滑塊邏輯。在服務器開始渲染隱藏字段時,註冊開始的日期,服務器根據此日期構建一個md5哈希。滑塊移動了一個函數被調用,它讀取隱藏字段的值並構建一個md5哈希。散列值將被髮送到服務器,並在提交註冊之前與散列的服務器值進行比較。不像保存文本驗證碼那樣有效,但比沒有做任何事情更有效。
我發現這一點:https://code.google.com/p/slidelock/
你有什麼事嗎?這個傢伙如何構建一個「安全」滑塊?他如何管理服務器端驗證和SALT?它是安全的還是隻有更多的昂貴的腳本才能破解它?
鏈接轉到停放的域 – Neberu
謝謝,我添加了一個新的。 – Nils