Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простейшая защита мыла от роботов 
:(
    Опции темы
sergejzr
Дата 20.2.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360




Код

<script>

function printEmail(email)
{
var arr=email.split('@');
var mail=arr[0]+'@'+arr[1];
document.write('<a href="mailto:'+mail+'">Email for '+'<?=$user?>'+'</a>');
}
printEmail("[email protected]");
</script>




Естественно робота можно дурачить как угодно, например заменяя буквы кодами, но даже приведённый пример достаточно эффективен...


PHP пример (ещё менее опасен)
Код

<?php
class db
{
function getEmail($r)
{
return "[email protected]";
}
}
$database=new db();

$user="testuser";
$email=$database->getEmail($user);

$arr=split('@',$email);
?>
<script>

var mail='<?=$arr[0]?>'+'@'+'<?=$arr[1]?>';
document.write('<a href="mailto:'+mail+'">Email for '+'<?=$user?>'+'</a>');

</script>




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 20.2.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 16
Всего: 317



С одним но: в XHTML нет document.write (да поддерживается, но вопреки стандарту).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 20.2.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Дельно, тогда сделаем ещё проще

Код

<script>
function encodeEmail(emailPrefix,emailPostfix)
{
//var arr=email.split('@');
var mail=emailPrefix+'@'+emailPostfix;
return '<a href="mailto:'+mail+'">Email for '+'<?=$user?>'+'</a>';
}
alert(encodeEmail("[email protected]"));
</script>


А уж разработчику решать, как эту ссылку в итоге печатать.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ksnk
Дата 1.3.2008, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Интересно, а есть ли скрытый смысл в этой магии?
Код

var arr=email.split('@');
var mail=arr[0]+'@'+arr[1];

Не проще ли сазу писать 
Код

'<a href="mailto:'+email+'">..."



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Sardar
Дата 1.3.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 16
Всего: 317



Простейшая выборка регами всё равно даст мыло в вызове encodeEmail("[email protected]") smile  Нужно прятать в картинку, просто, стильно, удобно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 1.3.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Всё верно, делить можно только на серверной стороне. Но никак в скрипте. Я переписал функцию.


Цитата(Sardar @  1.3.2008,  14:11 Найти цитируемый пост)
Нужно прятать в картинку, просто, стильно, удобно. 

Только неудобно перепечатывать её каждый раз. В принципе из за этого код и родился.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ksnk
Дата 1.3.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(sergejzr @  1.3.2008,  16:13 Найти цитируемый пост)
Только неудобно перепечатывать её каждый раз.

Неудобно кому? Или это забота о праве PHP скриптов на ограниченный рабочий день и отплачиваемый перерыв?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
sergejzr
Дата 1.3.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Неудобно тому, кто желает послать письмо по указанному адресу.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ksnk
Дата 1.3.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Ну да... То есть хочется сохранить вид ссылки <a href='mailto:xxx', но хочется помешать злым ботам спокойно  жрать из него почтовые адреса?
Можно предложить скриптом выводить 
<a href="[email protected]" >... а по onload'у странички регуляркой у всех таких адресов ненужные части повыкусить... Или еще страшнее - кодировать с каким-нибудь ключем. Те злые боты, которые не знают про JavаScript пойдут лесом... Правда написать бота, который знает о JavaScript и умеет бегать по DOM'у - работка на пару часов специалисту по Дельфи...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nerezus
Дата 16.5.2008, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



То, что может быть прочитано в тексте человеком, бот прочитает так же эффективно.

Причина: а почему бы боту не поддерживать JS?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
sergejzr
Дата 16.5.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(nerezus @  16.5.2008,  06:39 Найти цитируемый пост)
Причина: а почему бы боту не поддерживать JS? 

На данный момент таких ботов нет. Они накладны.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
nerezus
Дата 16.5.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



sergejzr, да есть такие боты. Написать такой ничего не стоит в концен концов - это всего 2 строки кода для расшифровки.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ghirik
Дата 18.5.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: нет
Всего: 20



Ну, не знаю парни.... Я пару лет использую шифрование JavaScript-ом почтовых адресов, и за всё время, только пару раз приходили левые письма на зашифрованные адреса. Я тогда не имел ни малейшего представления о JavaScript-е, но это не помешало мне воспользоваться замечательной программкой-шифровальщиком.

Выбирайте JavaScript-параноя, и наслаждайтесь бессмысленностью рождаемого кода.  smile 

Копи-пасте и голова не болит. smile 

Это сообщение отредактировал(а) Ghirik - 18.5.2008, 15:00


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
nerezus
Дата 19.5.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Примитивный код для загрузки странички и отключения защиты на JS для .NET пауков:
Код

WebBrowser w;

private void DecryptJs(string address) {
    w = new WebBrowser();
    w.Navigate(address);
    w.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(this.OnDocumentCompleted);
}

private void OnDocumentCompleted(object sender, EventArgs e) {
    TxtBody.Text = w.Document.Body.OuterHtml;
}

Пустить в поток данный код - и все.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ghirik
Дата 22.8.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: нет
Всего: 20



nerezus, а как ещё С++ поизучать не напрягаясь... smile 
Я вполне серьезно, слишком много скопилось задачь возле JavaScripta, которые просят продолжения... smile 


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
ksnk
Дата 23.8.2008, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



nerezus, Вот по этому "разрешать" почтовый адрес надо не по событию onload, а только по "onmouseover". "Повозить мышом на С" по всем элементам тоже не очень сложно, но требует определеной работы smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nerezus
Дата 23.8.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

nerezus, а как ещё С++ поизучать не напрягаясь...  
 Это пример на C#. C# не имеетничего общего с C или C++.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
SelenIT
Дата 25.8.2008, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 1
Всего: 401



Цитата(nerezus @  23.8.2008,  11:31 Найти цитируемый пост)
C# не имеетничего общего с C или C++.

По-моему, СИнтаксис у Шарпа все-таки с них позаимствован smile

А по теме - результаты занятного исследования. У сабжевого способа - третий результат smile


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема »


 




[ Время генерации скрипта: 0.0678 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.