Форум OlegON > Ресурсы OlegON > Вопросы сервера

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

22.11.2024 3:25


17.02.2012 14:22
Например пишем:

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

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
Ну например, не просто Нарушение писать. А написать, что именно. Потому что догадаться почти не реально, что нарушено.
17.02.2012 15:26
Есть предложение пойти от обратного. Детектить УРЛы регуляркой, потом перебирать все совпадения, и, если хоть одно не содержит olegon dot ru - запрещать.
17.02.2012 15:38
В чем выигрыш? Регулярки тяжелее и проще сразу выкинуть olegon.ru из сообщения, чтобы их и не проверять... Да и что тут регулярками можно изобрести? @ проверять нельзя, http: для линка писать необязательно, а в емейле его и нет... В строке "google.com" к чему можно придраться? только к .com :( Суть запрета - запрет на любое упоминание домена.
Вариант с "написать что нарушено"... Криво это... Расчитывается не только на линки, надо просто четкий механизм придумать. Я помозгую, но буду благодарен за идею.
17.02.2012 15:42
Цитата:
OlegON Вариант с "написать что нарушено"... Криво это...
Да почему?
Ну вот отправляю простой запрос, мне пишет "Нарушено правило форума".
Я иду в правила, там текста на пол часа чтения.
Я все прочитываю. И главное! Я все равно не понимаю, что нарушил.
Про запросы в правилах нет, вроде.
17.02.2012 15:47
Ну оно и сейчас у Вас пропустит, например,
Код:
kinozal.tv
Извращение, согласен :), однако домены со всякими нестандартными значениями продолжают плодиться.
Ну а придраться к чему-то кроме НаборСимволовРаз точка НаборСимволовДва действительно не к чему :(
17.02.2012 15:51
все IDN нафиг, а если после "." 2-4 символа - туда же :)
17.02.2012 15:57
ага, и тогда запрос
Код:
 select t.id from smdocuments t
уже не опубликуешь.
17.02.2012 15:57
Цитата:
leonid Я все равно не понимаю, что нарушил.
Про запросы в правилах нет, вроде.
зато появился повод написать тут, что и есть правильно - я о проблеме узнал. сейчас поразмышляю, действительно, если регуляркой на '\.[A-Za-z]{2,3}[ |/]' взять, то количество ложных срабатываний будет куда ниже, а количество отбитых доменов - больше... Правильно?
Часовой пояс GMT +3, время: 03:25.

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