Вграждане на флаш файлове

metal_head

Registered
Здравейте. Изправен съм пред голямо затруднение:

Искам да разреша на потребителите в сайта ми да качват флаш файлове, но не мога да им разреша да ъплоудват swf файлове на сървъра, защото нямам такова огромно място. Стигнах до мисълта, че мога да им дам да слагат EMBED кода в една textarea и така да качват флаш нещата. Проблемът обаче е , че така всеки може да пише какви ли не щуротии в това поле и сайта става уязвим на XSS атаки и гаври. Търсих доста в интернет, но ненамерих решение на проблема. Това, което ми трябва е да анализирам кода, който е постнат и ако не е, каквото трябва да е, да дава грешка. Проблемът е, че тия файлове могат да се ембедват по различни начини и е просто много трудно да направя анализатор. html_strip_tags не е достатъчно силна и лесно може да бъде изиграна при евентуален опит за XSS.

Някой правил ли е подобно нещо в сайта си и как го е направил? Не е задължително да е ембед код, просто искам да е максимално лесно за потребителите, защото нещо да е лесно е голям плюс :)
 
Направи си формата за качване, проверките, и заявките, и сложи при проверките това:

PHP:
 if(!preg_match('/.swf/', [b]$definiciqnafaila[/b]))
	{
		echo 'НЕВАЛИДНО! Трябва да е .swf формат, за да се качи!';
	}

Като:
$definiciqnafaila - htmlspecialchars(addslashes($_POST['file'])); да речем.

И кажи какво се получава.
 
Това е доста добре, но ме притеснява следното:

Ако някой се е зарекъл да прави мръсно, винаги може да вмъкне някъде едно ".swf" и кодът да мине през защитата - мен това ме притеснява. Не съм сигурен, защото никога не съм бил потребител в този сайт, но мисля, че в Kefche преди известно време имаха точно такава система за добавяне - с embed код (може и да не е било kefche) ... чудно ми е дали тази система е била устойчива на такива неща...
 
Поне аз не знам все още, начин, който да е по-добър от този който ти дадох. Лично с EMBED няма как да направиш 100% защита, винаги е 50%50. Лично аз, за моят проект използвам качване на флаш игра, директно от компютъра, и всичко си ми е точно и ясно. Препоръчвам ти горещо да използваш този код, който ти дадох, и да не се притесняваш толкова за злоупотреби.
 
nfarkt каза:
Направи си формата за качване, проверките, и заявките, и сложи при проверките това:

PHP:
 if(!preg_match('/.swf/', [b]$definiciqnafaila[/b]))
	{
		echo 'НЕВАЛИДНО! Трябва да е .swf формат, за да се качи!';
	}

Като:
$definiciqnafaila - htmlspecialchars(addslashes($_POST['file'])); да речем.

И кажи какво се получава.

Какво става, като файла е some.swf.php ?
http://rubular.com/r/WzpwaaOJPZ
 
Е какво може да става според теб? Прави си една бърза проверка, да не се вкарва .php в линка.

PHP:
if (strstr($definiciqnafaila,"[b].php[/b]"))  { 
echo "Линкът съдържа [b].php[/b], и не може да бъде качен!"; }
 
ами ако файла е swf но съдържа php код и е записан, като swf може да ти направи проблем поне аз така мисля за това аз използвам
Код:
$open=(file_get_contents($_FILES["uploaded"]['tmp_name'], $target)); 
$search=preg_match("/\<?\<?php/", $open);
if ($search) 
{ 
echo "<b>Грешка</b><br /> Във файла има вграден код !";
}
 
Ок хора, благодаря за помощта! В моя сайт се налага и одобрение от администратор, за да може нещо да се публикува, така че се надявам всичко да е ОК.

Аз много бих искал да имам файлов ъплоуд, но просто нямам достатъчно място на сървъра за това.
 

Back
Горе