Simpel en raar probleem
Ik heb een beetje een raar probleem.
http://keiard.be/new/displayvideo.php?video=*lt;object%20width=*quot;425*quot;%20height=*quot;355*quot;*gt;*lt;param%20name=*quot;movie*quot;%20value=*quot;http://www.youtube.com/v/bh6xpck4OSQ*color1=0x3a3a3a*color2=0x999999*hl=en*quot;*gt;*lt;/param*gt;*lt;param%20name=*quot;wmode*quot;%20value=*quot;transparent*quot;*gt;*lt;/param*gt;*lt;embed%20src=*quot;http://www.youtube.com/v/bh6xpck4OSQ*color1=0x3a3a3a*color2=0x999999*hl=en*quot;%20type=*quot;application/x-shockwave-flash*quot;%20wmode=*quot;transparent*quot;%20width=*quot;425*quot;%20height=*quot;355*quot;*gt;*lt;/embed*gt;*lt;/object*gt;
(Sorry voor de lange link, maar kopier en plak aub)
Zoals je ziet, is de eerste embed code niet gedisplayed.
Die zelfde embed code heb ik in het PHP bestandje geplakt. Dat filmpje weergeeft hij wel.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<html>
<body><?
$video = str_replace("*", "&", $_GET['video']); ?>
<? echo($video); ?>
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/bh6xpck4OSQ&color1=0x3a3a3a&color2=0x999999&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/bh6xpck4OSQ&color1=0x3a3a3a&color2=0x999999&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>
</body>
</html>
<body><?
$video = str_replace("*", "&", $_GET['video']); ?>
<? echo($video); ?>
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/bh6xpck4OSQ&color1=0x3a3a3a&color2=0x999999&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/bh6xpck4OSQ&color1=0x3a3a3a&color2=0x999999&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>
</body>
</html>
Dat is het bestandje. Waarom displayt hij de eerst Embed code als text? Ben hier al enkele uren mee bezig...
Gewijzigd op 01/01/1970 01:00:00 door Res Bas
Daarnaast is het niet echt slim om deze volledige codes in de url op te nemen, die veranderen toch nooit. Het enige dynamische dat je nodig hebt, is de unieke code van het youtube filmpje...
Ik snap dat het alleen om het unieke code gaat van het youtube filmpje, maar ik wil dit gebruiken voor alle video sites, dus daarom heb ik dit moeten gebruiken.
Quote:
In de GET variabele staan niet de html teken, maar enkel hun htmlentiteiten. Dat is de reden waarom de HTML letterlijk op het scherm weergegeven en niet uitgevoerd wordt.
Is er geen manier om hem wel te laten uitvoeren?
Quote:
Oh ja? Ook voor die andere sites veranderen die embed codes niet, die kun je dus gewoon hard coded in je script zetten. Je hebt in de url dan enkel nog de unieke code van het filmpje en de site nodig. Zo dus bijvoorbeeld:maar ik wil dit gebruiken voor alle video sites, dus daarom heb ik dit moeten gebruiken.
jouwsite.nl/show.php?code=bh6xpck4OSQ&type=youtube
Die hele HTML code heb je niet nodig in de url. Bovendien zal dat problemen opleveren aangezien de url maar een bepaald aantal tekens kan bevatten. Grote kans dat die embed codes langer zijn...
Als laatste brengt het een gigantisch veiligheidsrisico met zich mee, ik kan nu elke html/javscript code op jouw site gaan uitvoeren. En geloof me, dat is niet wat je wilt...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Ik zal voor de beveiliging zorgen wanneer ik een goed werkende code heb... Dat komt goed.
Dus ik vraag het nogmaals:
Weergeeft:
Code (php)
1
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/bh6xpck4OSQ&color1=0x3a3a3a&color2=0x999999&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/bh6xpck4OSQ&color1=0x3a3a3a&color2=0x999999&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>
Het embed het filmpje niet, dus het voert de HTML code neit uit. Weet iemand een manier om het script het HTML stukje uit te voeren? Dit zal toch echt niet zo moeilijk zijn?
Reshad Bashir schreef op 22.03.2008 14:40:
Blanche, je moet begrijpen dat ik dan voor elke site een ander systeem meot maken, omdat er erg veel video sites zijn en ze lang niet allemaal werken met een code voor een film..
Alles beter dan de HTML letterlijk in de url te proppen. Dit valt namelijk nooit te beveiligen aangezien de beveiliging berust op het zorgen dat de HTML niet uitgevoerd wordt. En dat is precies wat bij jou wel moet gebeuren. Dat is dus vragen om problemen!
En hoezo zou je voor elke site een ander systeem moeten maken? Als jij in de url een GET variabele 'type' opneemt waarmee je aangeeft om welke site het gaat, kun je daar in je script gewoon naar kijken. Afhankelijk van het type kun je in de url nog extra GET variabelen opgeven, zoals in het geval van youtube bijvoorbeeld een unieke code.
In je script kun je hier vervolgens op inspelen en zorgen dat het filmpje weergegeven wordt...
Dus er is geen manier ervoor om het te laten uitvoeren?
html_entity_decode().
Maar goed, je zegt dat je geen amateur bent. Dan vind je het vast niet erg dat ik je vraag hoe je de beveiliging van je systeem in gedachte had? Daar ben ik dan namelijk wel erg benieuwd naar, ik zie namelijk gigantische veiligheidslekken in deze methode...
ps. Het zou uiteraard zonde van je tijd zijn als je straks de beveiliging niet rond krijgt en je toch een andere aanpak moet kiezen. Bij mij is de beveiliging dan ook vanaf het eerste moment in mijn scripts aanwezig.
Ik zou eigenlijk nee willen zeggen, maar PHP kent wel degelijk een functie om html entiteiten weer te decoderen: Maar goed, je zegt dat je geen amateur bent. Dan vind je het vast niet erg dat ik je vraag hoe je de beveiliging van je systeem in gedachte had? Daar ben ik dan namelijk wel erg benieuwd naar, ik zie namelijk gigantische veiligheidslekken in deze methode...
ps. Het zou uiteraard zonde van je tijd zijn als je straks de beveiliging niet rond krijgt en je toch een andere aanpak moet kiezen. Bij mij is de beveiliging dan ook vanaf het eerste moment in mijn scripts aanwezig.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Ik heb erg veel games en sites gemaakt:
http://www.playlon.net
http://www.ang3lnails.nl
http://www.countrysim.net
http://www.2mpress.nl
Hoe ik die beveiliging ga oplossen?
1: De data in de GET controleren en kijken of er <embed> instaat
2: de data in de GET controleren en kijken of er
Code (php)
1
2
3
4
5
2
3
4
5
<? instaat
3: De data in de GET controleren en kijken of er <script> instaat
enzovoorts.
Staat dat er in, dan een simpel: die;
3: De data in de GET controleren en kijken of er <script> instaat
enzovoorts.
Staat dat er in, dan een simpel: die;
Maar goed, als jij het graag op deze manier wilt aanpakken zal ik je zeker niet tegen houden. Gelukkig mag iedereen die keuze nog voor zichzelf maken ;-)
Succes ermee in ieder geval...
Succes met dicht timmeren, klein (onschuldig) voorbeeldje van waar je dan zoal tegenaan gaat lopen...
http://keiard.be/new/displayvideo.php?video=*lt;object%20onmouseover=*quot;while(1){alert(document.cookie)}*quot;%20width=*quot;425*quot;%20height=*quot;355*quot;*gt;*lt;param%20name=*quot;movie*quot;%20value=*quot;http://www.youtube.com/v/bh6xpck4OSQ*color1=0x3a3a3a*color2=0x999999*hl=en*quot;*gt;*lt;/param*gt;*lt;param%20name=*quot;wmode*quot;%20value=*quot;transparent*quot;*gt;*lt;/param*gt;*lt;embed%20src=*quot;http://www.youtube.com/v/bh6xpck4OSQ*color1=0x3a3a3a*color2=0x999999*hl=en*quot;%20type=*quot;application/x-shockwave-flash*quot;%20wmode=*quot;transparent*quot;%20width=*quot;425*quot;%20height=*quot;355*quot;*gt;*lt;/embed*gt;*lt;/object*gt;