PDA

Pogčedajte punu verziju : Koliko bi bilo opasno dozvoliti EMBED HTML tag na forumu?


Peca
09. 01. 2007., 05:19
Hteo bih da dozvolim korisnicima da linkuju klipove sa Youtube direktno iz svojih postova na forumu.
Da li bi bio security rizik dozvoliti EMBED HTML tag [kojim se insertuje Flash klip sa Youtube], da li bi kroz taj tag mogao da se insertuje i neki Embed objekat koji bi mogao da ugrozi bezbednost posetioca foruma?

kodi
09. 01. 2007., 08:26
srecom po tebe youtube link je u strogo odredjenom formatu
samo treba da sastavis jedan regexp da proveraca da li je link sa youtube i da li je pravilnog formata.

zira
09. 01. 2007., 08:27
napravis novi tag 345345345 i on ucitava samo odgovarajuci video npr ID=345345345 sa youtube, ti ostatak koda dodas programski.

bojan_bozovic
09. 01. 2007., 11:58
Jeste, bas tako odradi jer sa Flashom i Actionscriptom (mada isti ne poznajem uopste) bi trebalo da moze da se odradi sve i sto sa HTML i JS, kradja cookija, redirekcija, popupovi itd.

Drugim recima, odgovor je mnogo.

Ivan
09. 01. 2007., 12:11
Extra je opasno da to dozvolis, ovo sto je predlozio @zira je cool resenje ... samo pripazi da ogranicis input (345345345) da neko ne doda jos nesto pa malo prepravi tvoj kod i ostaje jos mogucnost malicioznog video ali mislim da to sredjuje youtube (nisam se igrao sa njime).

bojan_bozovic
09. 01. 2007., 12:34
@Ivan, maliciozan video? Znam za wmv, kad proba da downloaduje kodeke sa pprno/warez sajtova, ili redirektuje na porno sajt umesto da downloaduje kodek, ali flash sa youtube? Na sta si konkretno mislio, onako me zanima?

Peca
09. 01. 2007., 13:26
Zira ima super resenje, tako cu i odraditi.
Tnx :)

kodi
09. 01. 2007., 21:24
napravis novi tag 345345345 i on ucitava samo odgovarajuci video npr ID=345345345 sa youtube, ti ostatak koda dodas programski.

kad sam pomenuo regexp- upravo sam na ovo mislio.
medjutim mnogo je lakse korisnicima da urade copy/paste url a onda samo da se filtrira video id.

nisam bas neki regex expert ali evo kako je to u JS odradio lik sa http://video.qooqle.jp/dl/ (YouTube downloader)


function getVideoID(url) {
if (url.match(/\?v=([^&]+)/)) return RegExp.$1;
return '';
}

ne bi trebalo da bude problem prilagoditi to za PHP

Ivan
09. 01. 2007., 22:41
@bojan_bozovic
Ne znam ni sam tacno kako, jer nisam gledao kako youtube (u kojem formatu) prosledjuje video, to sto sam rekao je vise bila kao ideja (cim sam cuo flash mislio sam na ubacivanje nekog as-a ili sl) ili moje razmiljanje naglas ... :)

ivanhoe
10. 01. 2007., 03:28
function getVideoID(url) {
if (url.match(/\?v=([^&]+)/)) return RegExp.$1;
return '';
}


nije ovo dobar regexp, jer on samo cupa ID iza parametra v, sa tim malo sta moze da se proveri...

Evo ga nabrzaka jedan regexp u PHP-u za youtube(za format urla: http://www.youtube.com/watch?v=BLABLA)

if( !preg_match('{^http\://www.youtube.com/watch\?v=[A-Z0-9]+$}i', $url) )
echo "No No, bad boy.";

Peca
10. 01. 2007., 13:42
if( !preg_match('{^http\://www.youtube.com/watch\?v=[A-Z0-9]+$}i', $url) )
echo "No No, bad boy.";

nemas ogranicenje na duzinu 'v' promenljive... pa bi mozda mogli da se escape-uju i dodaju svoj HTML...
ne znam napamet regexp, pogledacu manual, kad budem implementirao ovo, pa cu ograniciti i duzinu, ako neko pre mene to ne uradi :)

edit: u stvari, ne mogu da se escape-uju sa [A-Z0-9] :D
zamemari moj prethodni komentar :)

p.s. fali a-z i - karakter.
mozda i tacku stavljaju u stringu nekad?

ivanhoe
10. 01. 2007., 17:22
p.s. fali a-z i - karakter.
mozda i tacku stavljaju u stringu nekad?


imas modifikator \i (case Insensitive) na kraju regexp-a tako da nema potrebe i za malim slovima (a i resava se problem ako neko ukuca YouTube.com, umesto youtube.com)

kao sto rekoh ovo sam napisao na brzaka iz glave, nije testirano, ali mislim da je ok...