2012-02-07 4 views
0

Я использую MSCAPTCHA в одном из моих проектов. Теперь я знаю, что Captchas, что их персонажи зависят от их URL-адреса изображения, может быть легко передан хакерами. Я имею в виду, если мы скопируем url изображения captcha и откройте его в новом окне браузера и обновим его, будут сгенерированы одинаковые символы. , и у хакеров есть способы использовать эту ошибку. Как ? они пишут небольшую программу, которая запрашивает нашу страницу, кроме кавычки, тогда они используют этот первый URL-адрес изображения captcha. и они передают капчу. (Я читал это где-то, и я тоже не знаю подробностей)проблема безопасности с MSCAPTCHA

Теперь любая идея, как решить эту проблему? или есть какой-либо captcha без этой проблемы?

+1

Неясно, какую уязвимость вы описываете. Попробуй еще раз? –

+0

Извините, я до сих пор не понимаю, какую ошибку или атаку вы описываете здесь. Голосование закрывается. – deceze

+0

таким образом, captcha не более полезен, потому что код хакера имеет один URL-адрес captcha и будет использовать его. например, форма журнала бюллетеня с этой капчей позволяет плохим пользователям отправлять запросы через свой код, не беспокоясь о содержании конвертации. –

ответ

0

Я не знаю, MSCAPTCHA в частности, но вы, кажется, неправильно понимаете, как captchaas решена. Да, каждый образ captcha имеет уникальный URL-адрес. Это прекрасно и неуместно. Форма, которой принадлежит captcha, имеет некоторую информацию, которая требует от пользователя решения определенного captcha. Пользователь не может просто ответить на любую случайную капчу, которую он хочет.

При подготовке формы, представленной пользователю, сервер генерирует капчу и сохраняет ожидаемый ответ внутри организации, например, в сеансе пользователя. Затем он отправляет ссылку на конкретное изображение captcha пользователю с формой. Если возвращенный ответ не соответствует ожидаемому, решение отклоняется. Не имеет значения, пытается ли пользователь посмотреть какой-либо другой код, чем тот, который был отправлен сервером.

+0

спасибо, я только что прочитал об этом в блоге. –

0

Возможно, что-то, чтобы обойти проблему, все еще обращаясь к базовому требованию проверки человека и робота, который заполняет капчу?

Я реализовал что-то свое, которое читатель должен был читать. Я бы спросил их

«У меня есть камни из АА, и я больше беру BB. У меня теперь есть [textbox_here] камней в целом».

Псевдокод, как:

Random rand = new Random(); 
int intNums[] = {0,1,2,3,4,5,6,7,8,9}; 
string strNums[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; 
int aIndex = rand.Next(0,4); // 0, inclusive, 5 exclusive 
int bIndex = rand.Next(0,4); 

// 1. use AA and BB below to print your HTML form 
string AA = strNum[aIndex]; 
string BB = strNum[bIndex]; 

// 2. save/pass out "rightAnswer" to later verify 
// the users answer from the textbox 
int rightAnswer = aIndex + bIndex; 

Я предпочитаю это, так как это легко, никаких внешних зависимостей и до сих пор он не работал (не спам). Вы также можете попробовать множество вопросов и ответы, как

string questionArray[] = { "My mother has only one son. Am I male or female?", ... }; 
string answerArray[] = { "male", ... }; 

Вы получаете идею ...

Надеются, что это помогает!

Смежные вопросы