Функция за защита !

dakata__92

Super Moderator
Имам следната функция която ми извежда текущия линк на страницата в която се намира абоната ! Искам да направя проверка с регулярен израз на върнатия от фупкцията код и ако има непозволени символи да показва че е проведена атака към сайта ! Немога да се справя с регулярния израз нещо който да проверява дали има непозволени символи . За htmlspecialchars или addslashes не ми обяснявайте знам какво да правя, просто жилая да се получи това с регулярния израз. Стигнах до тук :
PHP:
function curPageURL() 
{
	$pageURL = 'http';
	if (isSet($_SERVER["HTTPS"]) == "on") 
	{
		$pageURL .= "s";
	}
	$pageURL .= "://";
	if (isSet($_SERVER["SERVER_PORT"]) != "80") 
	{
		$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
	} 
	else 
	{
		$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
	}
	return $pageURL;
}

$pageURL = curPageURL();
if(preg_match('/https?:\/\/[^<>\'"(){},\[\]#~%@$\s]+)/is',$pageURL))
{
echo"<font color='red'>Записахме атаката Ви !</font></br>";
}
 
PHP:
if(!preg_match('/^https?\:\/\/[A-Za-z0-9.]?[A-Za-z0-9\-]+.[A-Za-z]{2,4}([A-Za-z0-9\/\_\&\?\%\#\.\=]+)?$/',$pageURL))
{
echo"<font color='red'>Записахме атаката Ви !</font></br>";
}

Това са символите които са си стандартни за url-то и съм ги позволил:

/ ? & # _ - . = % всичко друго е невалидно и ще изкарва грешка.
 
dakata__92 каза:
Защо записва таговете < > така %3C%3E ? :shock:

Защото всеки символ различен от латиница се кодира по този начин.Трябва да минеш през urldecode() за да се проубразуват в желаните от теб символи.
 
somebody каза:
dakata__92 каза:
Защо записва таговете < > така %3C%3E ? :shock:

Защото всеки символ различен от латиница се кодира по този начин.Трябва да минеш през urldecode() за да се проубразуват в желаните от теб символи.
Просто ще премахна като позволен знак % и няма да ги матчва, но искам да попитам това сигорен тип защита ли е ? И какво могат да ми направят със символа @ ако го оставя позволен ?
 
Аз не виждам изобщо защита тук доколкото разбрах искаш да засичаш непозволени символи в урл адреса.

Погледни тук за различните разновидности на cross site scripting.
 
somebody каза:
Аз не виждам изобщо защита тук доколкото разбрах искаш да засичаш непозволени символи в урл адреса.

Погледни тук за различните разновидности на cross site scripting.
Тази функция се инклудва навсякъде и ако някой реши да въведе нещо неправилно записва информацията след което блокира абоната при определени обстоятелства които съм задал :)
 
dakata__92 каза:
Тази функция се инклудва навсякъде и ако някой реши да въведе нещо неправилно записва информацията след което блокира абоната при определени обстоятелства които съм задал :)

Добре де, оределяш според теб кои са допустимите символи специално за урл адреси на твоя сайт, и ако има ралични такива записваш информация за дадения посетител някъде си както и самия урл адрес примерно в текстов файл.После можеш да ги преглеждаш и отсяваш кое е "атака" и кое е неволна грешка от страна на посетителя.
 
http://web-tourist.net/forum/viewtopic.php?p=598422#598422 аз си написах ето това и нямам проблем с XSS.

Но искам да попитам, защо все започвате отзад напред ? Изградете си сайта, че чак тогава мислете за защита. Все пак на всяко място едва ли ще използвате едни и същи скучни методи за защита ? Ако е така, на грешен ход сте.
 

Back
Горе