Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от спамерских URL
 
 автор: sway   (29.12.2006 в 06:10)   письмо автору
 
 

День добрый!
есть на сайте система каментов, по сути туда можно добавлять посты хоть о чем, но отдельные элементы используют это для того штобы записать следующее:

ttp://diabetescarelink.com/1500-calorie-diabetic-diet.htm

ну и в таком духе.

бывает еще просто, по вражески много написано

Не подскажете как этого можно избежать?
может проверять на каком языке написано? но как тогда транслит?

   
 
 автор: himic   (29.12.2006 в 07:59)   письмо автору
 
   для: sway   (29.12.2006 в 06:10)
 

Если не хочешь чтобы выкладывали ссылки на другие ресурсы проберяй на наличие WWW ftp://
итп
сделай максимальную длину поля
и постави защиту картинкой от роботов

   
 
 автор: cheops   (29.12.2006 в 13:06)   письмо автору
 
   для: sway   (29.12.2006 в 06:10)
 

Вы можете запретить добавлять URL, если перед добоавлением сообщений будете осуществлять проверку на наличие URL
<?php
  
if(preg_match("|\.[a-z]{2-3}|"$text)) exit();
?>

   
 
 автор: Uzer44   (29.12.2006 в 13:40)   письмо автору
 
   для: cheops   (29.12.2006 в 13:06)
 

У меня в гостевой вские товарищи любили портить атмосферу всякими ссылками вот моё решение проблеммы:
<?
$ntext
=ereg_replace("http://[A-Za-z0-9./=?-]+","[censored]",$ntext);

$ntext=str_replace("kmx.ru","[censored]",$ntext);
$ntext=str_replace("hih.ru","[censored]",$ntext);
$ntext=str_replace("lya.ru","[censored]",$ntext);
$ntext=str_replace("kmx.kz","[censored]",$ntext);
$ntext=str_replace("kmx.lt","[censored]",$ntext);
$ntext=str_replace("wapb.lt","[censored]",$ntext);
$ntext=str_replace("wen.ru","[censored]",$ntext);
$ntext=str_replace("wen9.com","[censored]",$ntext);
$ntext=str_replace("wen9.net","[censored]",$ntext);
$ntext=str_replace("wen9.org","[censored]",$ntext);
$ntext=str_replace("wab.ru","[censored]",$ntext);
$ntext=str_replace("wap.ua","[censored]",$ntext);
$ntext=str_replace("port.su","[censored]",$ntext);
$ntext=str_replace("uld.ru","[censored]",$ntext);
$ntext=str_replace("kiw.ru","[censored]",$ntext);
$ntext=str_replace("fatal.ru","[censored]",$ntext);
$ntext=str_replace("narod.ru","[censored]",$ntext);

$ntext=str_replace("kmx .ru","[censored]",$ntext);
$ntext=str_replace("hih .ru","[censored]",$ntext);
$ntext=str_replace("lya .ru","[censored]",$ntext);
$ntext=str_replace("kmx .kz","[censored]",$ntext);
$ntext=str_replace("kmx .lt","[censored]",$ntext);
$ntext=str_replace("wapb .lt","[censored]",$ntext);
$ntext=str_replace("wen .ru","[censored]",$ntext);
$ntext=str_replace("wen9 .com","[censored]",$ntext);
$ntext=str_replace("wen9 .net","[censored]",$ntext);
$ntext=str_replace("wen9 .org","[censored]",$ntext);
$ntext=str_replace("wab .ru","[censored]",$ntext);
$ntext=str_replace("wap .ua","[censored]",$ntext);
$ntext=str_replace("port .su","[censored]",$ntext);
$ntext=str_replace("uld .ru","[censored]",$ntext);
$ntext=str_replace("kiw .ru","[censored]",$ntext);
$ntext=str_replace("fatal .ru","[censored]",$ntext);
$ntext=str_replace("narod .ru","[censored]",$ntext);

$ntext=str_replace("kmx. ru","[censored]",$ntext);
$ntext=str_replace("hih. ru","[censored]",$ntext);
$ntext=str_replace("lya. ru","[censored]",$ntext);
$ntext=str_replace("kmx. kz","[censored]",$ntext);
$ntext=str_replace("kmx. lt","[censored]",$ntext);
$ntext=str_replace("wapb. lt","[censored]",$ntext);
$ntext=str_replace("wen. ru","[censored]",$ntext);
$ntext=str_replace("wen9. com","[censored]",$ntext);
$ntext=str_replace("wen9. net","[censored]",$ntext);
$ntext=str_replace("wen9. org","[censored]",$ntext);
$ntext=str_replace("wab. ru","[censored]",$ntext);
$ntext=str_replace("wap. ua","[censored]",$ntext);
$ntext=str_replace("port. su","[censored]",$ntext);
$ntext=str_replace("uld. ru","[censored]",$ntext);
$ntext=str_replace("kiw. ru","[censored]",$ntext);
$ntext=str_replace("fatal. ru","[censored]",$ntext);
$ntext=str_replace("narod. ru","[censored]",$ntext);

$ntext=str_replace("kmx . ru","[censored]",$ntext);
$ntext=str_replace("hih . ru","[censored]",$ntext);
$ntext=str_replace("lya . ru","[censored]",$ntext);
$ntext=str_replace("kmx . kz","[censored]",$ntext);
$ntext=str_replace("kmx . lt","[censored]",$ntext);
$ntext=str_replace("wapb . lt","[censored]",$ntext);
$ntext=str_replace("wen . ru","[censored]",$ntext);
$ntext=str_replace("wen9 . com","[censored]",$ntext);
$ntext=str_replace("wen9 . net","[censored]",$ntext);
$ntext=str_replace("wen9 . org","[censored]",$ntext);
$ntext=str_replace("wab . ru","[censored]",$ntext);
$ntext=str_replace("wap . ua","[censored]",$ntext);
$ntext=str_replace("port . su","[censored]",$ntext);
$ntext=str_replace("uld . ru","[censored]",$ntext);
$ntext=str_replace("kiw . ru","[censored]",$ntext);
$ntext=str_replace("fatal . ru","[censored]",$ntext);
$ntext=str_replace("narod . ru","[censored]",$ntext);

$ntext=str_replace("kmx-ru","[censored]",$ntext);
$ntext=str_replace("hih-ru","[censored]",$ntext);
$ntext=str_replace("lya-ru","[censored]",$ntext);
$ntext=str_replace("kmx-kz","[censored]",$ntext);
$ntext=str_replace("kmx-lt","[censored]",$ntext);
$ntext=str_replace("wapb-lt","[censored]",$ntext);
$ntext=str_replace("wen-ru","[censored]",$ntext);
$ntext=str_replace("wen9-com","[censored]",$ntext);
$ntext=str_replace("wen9-net","[censored]",$ntext);
$ntext=str_replace("wen9-org","[censored]",$ntext);
$ntext=str_replace("wab-ru","[censored]",$ntext);
$ntext=str_replace("wap-ua","[censored]",$ntext);
$ntext=str_replace("port-su","[censored]",$ntext);
$ntext=str_replace("uld-ru","[censored]",$ntext);
$ntext=str_replace("kiw-ru","[censored]",$ntext);
$ntext=str_replace("fatal-ru","[censored]",$ntext);
$ntext=str_replace("narod-ru","[censored]",$ntext);

$ntext=str_replace("k m x . r u","[censored]",$ntext);
$ntext=str_replace("h i h . r u","[censored]",$ntext);
$ntext=str_replace("l y a . r u","[censored]",$ntext);
$ntext=str_replace("k m x . k z","[censored]",$ntext);
$ntext=str_replace("k m x .l t","[censored]",$ntext);
$ntext=str_replace("w a p b . lt","[censored]",$ntext);
$ntext=str_replace("w e n . r u","[censored]",$ntext);
$ntext=str_replace("w e n 9 . c o m","[censored]",$ntext);
$ntext=str_replace("w e n 9 . n e t","[censored]",$ntext);
$ntext=str_replace("w e n 9 . o r g","[censored]",$ntext);
$ntext=str_replace("w a b . r u","[censored]",$ntext);
$ntext=str_replace("w a p . u a","[censored]",$ntext);
$ntext=str_replace("p o r t . s u","[censored]",$ntext);
$ntext=str_replace("u l d . r u","[censored]",$ntext);
$ntext=str_replace("k i w . r u","[censored]",$ntext);
$ntext=str_replace("f a t a l . r u","[censored]",$ntext);
$ntext=str_replace("n a r o d . r u","[censored]",$ntext);

$ntext=str_replace("wap.maxmobil.ru","[censored]",$ntext);
?>

Вы знаите помогло намного

   
 
 автор: Sway   (29.12.2006 в 21:33)   письмо автору
 
   для: Uzer44   (29.12.2006 в 13:40)
 

но бывает еще просто набо текста на вражеском языке, без урлов (http, www, ftp), а как с этим бороться?

   
 
 автор: Uzer44   (29.12.2006 в 21:35)   письмо автору
 
   для: Sway   (29.12.2006 в 21:33)
 

Сделай замену букв вражеских на русские или на что нибудь ещё или просто вырезай такие символы.
если для тебя это критично

   
 
 автор: cheops   (29.12.2006 в 22:21)   письмо автору
 
   для: Sway   (29.12.2006 в 21:33)
 

Можно поставить проверку
<?php 
  
if(preg_match("|[a-z]|"$text)) exit(); 
?>

   
 
 автор: trix   (31.12.2006 в 00:47)   письмо автору
 
   для: Sway   (29.12.2006 в 21:33)
 

Это в основном всякие подлые роботы делают. Мало кто будет в ручную всякую хрень набивать.
Так что поставь проверочную картинку и забудь !

   
 
 автор: Unkind   (31.12.2006 в 00:55)   письмо автору
 
   для: trix   (31.12.2006 в 00:47)
 

Мало кто будет в ручную всякую хрень набивать. Так что поставь проверочную картинку и забудь !
Cудя по сообщеним, это WAP-гостевая. Там как раз вручную умники и набирают. И не устают. :)

   
 
 автор: Gemorroj   (31.12.2006 в 05:31)   письмо автору
 
   для: Unkind   (31.12.2006 в 00:55)
 

А вот моё похожее решение =)


$spam1=array ('.кмх.ру',
'.kmx.ru',
'.hih.ru',
'.lya.ru',
'.wen.ru',
'.kiw.ru',
'.wapu.ru',
'.wen9.org',
'.wen9.com',
'.wen9.net',
'.wapers.us',
'.hesh.ru',
'.try.hu',
'.wen.su',
'.wab.ru',
'.by.ru',
'.kmx.kz',
'.wapb.lv',
'.kmx.lt',
'.wap.ru',
'.pp.ru',
'.spb.ru',
'.da.ru',
'.net.ru',
'.org.ru',
'.com.ru',
'.mag.su',
'.port.su',
'.com',
'.net',
'.org',
'.info',
'.kz',
'.lt',
'.us',
'.su',
'.jino.ru',
'.jino-net.ru',
'.ho.com.ua',
'.ua',
'.ру',
'.ru',
'.гu');
$spam2=' =)';
$imja=str_replace('http://','',$imja);
$imja=str_replace($spam1,$spam2,$imja);
$text = eregi_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"$anti_spam1\">$anti_spam2</a>", $text);


Не идеальное конечно, но кроме как перебор возможных спамерских слов решения не вижу.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования