Форум по программам и оборудованию > >

Новички не могут адекватно вставлять sql запросы в сообщения

22.05.2018 20:38


[ОТВЕТИТЬ]
17.02.2012 14:22
leonid
 
Например пишем:

Код:
select t точка name from table1 t
Если вместо слова точка поставить знак '.', то отправить сообщение не дает.
Говорит Нарушение, а какое не говорит. Пол дня пытался запрос отправить, пока не понял в чем хитрость.
17.02.2012 15:01
OlegON
 
Это антиспам работает. На самом деле ограничение не просто на точку.
Если есть какие-то другие предложения, как запретить (определить) линки и емейлы по подстроке - давайте переделаем, готов поправить. Сейчас сделано достаточно тупо, поскольку наспех.

SQL код:
if (!is_member_of($vbulletin->userinfo$groups) OR $groups[0] == 0

$pagetext $this->fetch_field('pagetext','post'); 
$pagetext str_replace('[url]https://olegon.ru','',$pagetext);
$pagetext str_replace('[URL="https://olegon.ru','',$pagetext);
$pagetext str_replace('https://olegon.ru','',$pagetext);
$pagetext str_replace('[URL="https://storage.olegon.ru','',$pagetext);
$pagetext str_replace('[url]https://storage.olegon.ru','',$pagetext);
$pagetext str_replace('https://storage.olegon.ru','',$pagetext);
if ((
stristr($pagetext,'[url') or stristr($pagetext,'://') or stristr($pagetext,'[URL') or stristr($pagetext,'www.') or stristr($pagetext,'.ru') or stristr($pagetext,'.net') or stristr($pagetext,'.com'))) 
    { 
    
$this->error('restrict_by_rules'); 
    
$return_value false
    } 

17.02.2012 15:21
leonid
 
Ну например, не просто Нарушение писать. А написать, что именно. Потому что догадаться почти не реально, что нарушено.
17.02.2012 15:26
CrazyWolf
 
Есть предложение пойти от обратного. Детектить УРЛы регуляркой, потом перебирать все совпадения, и, если хоть одно не содержит olegon dot ru - запрещать.
17.02.2012 15:38
OlegON
 
В чем выигрыш? Регулярки тяжелее и проще сразу выкинуть olegon.ru из сообщения, чтобы их и не проверять... Да и что тут регулярками можно изобрести? @ проверять нельзя, http: для линка писать необязательно, а в емейле его и нет... В строке "google.com" к чему можно придраться? только к .com :( Суть запрета - запрет на любое упоминание домена.
Вариант с "написать что нарушено"... Криво это... Расчитывается не только на линки, надо просто четкий механизм придумать. Я помозгую, но буду благодарен за идею.
17.02.2012 15:42
leonid
 
Цитата:
OlegON Вариант с "написать что нарушено"... Криво это...
Да почему?
Ну вот отправляю простой запрос, мне пишет "Нарушено правило форума".
Я иду в правила, там текста на пол часа чтения.
Я все прочитываю. И главное! Я все равно не понимаю, что нарушил.
Про запросы в правилах нет, вроде.
17.02.2012 15:47
CrazyWolf
 
Ну оно и сейчас у Вас пропустит, например,
Код:
kinozal.tv
Извращение, согласен :), однако домены со всякими нестандартными значениями продолжают плодиться.
Ну а придраться к чему-то кроме НаборСимволовРаз точка НаборСимволовДва действительно не к чему :(
17.02.2012 15:51
whitewizard
 
все IDN нафиг, а если после "." 2-4 символа - туда же :)
17.02.2012 15:57
Mtirt
 
ага, и тогда запрос
Код:
 select t.id from smdocuments t
уже не опубликуешь.
17.02.2012 15:57
OlegON
 
Цитата:
leonid Я все равно не понимаю, что нарушил.
Про запросы в правилах нет, вроде.
зато появился повод написать тут, что и есть правильно - я о проблеме узнал. сейчас поразмышляю, действительно, если регуляркой на '\.[A-Za-z]{2,3}[ |/]' взять, то количество ложных срабатываний будет куда ниже, а количество отбитых доменов - больше... Правильно?
17.02.2012 15:59
OlegON
 
Цитата:
Mtirt ага, и тогда запрос
Код:
 select t.id from smdocuments t
уже не опубликуешь.
Эххх, тогда что же делать-то...
'[A-Za-z]{3,}\.[A-Za-z]{2,3}[ |/]' тоже кучу запросов переловит :(
17.02.2012 16:06
leonid
 
Берем подозрительное выражение, например "ввв dot ком".
И пингуем его, если пинг ок - то ссылка.
17.02.2012 16:09
CrazyWolf
 
Цитата:
OlegON Эххх, тогда что же делать-то...
'[A-Za-z]{3,}\.[A-Za-z]{2,3}[ |/]' тоже кучу запросов переловит :(
Как вариант, не проверять секцию CODE, а ежели найдется шибко умный спамер то плюсомет всегда под рукой :)
17.02.2012 16:16
OlegON
 
Цитата:
leonid Берем подозрительное выражение, например "ввв dot ком".
И пингуем его, если пинг ок - то ссылка.
Миллион емейловых доменов не пингуются по имени :( Как и многие другие неемейловые... Да и завалить сервак очередью простаивающих в ожидании пинга потоков тогда можно будет. Медленное это дело.
17.02.2012 16:17
OlegON
 
Цитата:
CrazyWolf Как вариант, не проверять секцию CODE, а ежели найдется шибко умный спамер то плюсомет всегда под рукой :)
Вот пока двигаюсь в этом направлении... А хотелось бы автоматом...
17.02.2012 16:20
whitewizard
 
тогда все двухбуквенные, кроме ID :)
Опции темы


Часовой пояс GMT +3, время: 20:38.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.