Simpel en raar probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Res Bas

Res Bas

22/03/2008 11:53:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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
 
PHP hulp

PHP hulp

17/05/2024 04:22:45
 
Joren de Wit

Joren de Wit

22/03/2008 11:56:00
Quote Anchor link
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.

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...
 
Res Bas

Res Bas

22/03/2008 12:04:00
Quote Anchor link
@ Blance

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?
 
Joren de Wit

Joren de Wit

22/03/2008 12:12:00
Quote Anchor link
Quote:
maar ik wil dit gebruiken voor alle video sites, dus daarom heb ik dit moeten gebruiken.
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:

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
 
Res Bas

Res Bas

22/03/2008 14:40:00
Quote Anchor link
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...

Ik zal voor de beveiliging zorgen wanneer ik een goed werkende code heb... Dat komt goed.

Dus ik vraag het nogmaals:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo($video); ?>


Weergeeft:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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?
 
Joren de Wit

Joren de Wit

22/03/2008 15:06:00
Quote Anchor link
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...
 
Res Bas

Res Bas

22/03/2008 15:13:00
Quote Anchor link
Blanche, ik ben geen amateur programmeur. Echt niet. Ik weet wat ik doe, misschien klinkt het dom, maar ik weet wat ik doe...

Dus er is geen manier ervoor om het te laten uitvoeren?
 
Joren de Wit

Joren de Wit

22/03/2008 15:18:00
Quote Anchor link
Ik zou eigenlijk nee willen zeggen, maar PHP kent wel degelijk een functie om html entiteiten weer te decoderen: 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.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Res Bas

Res Bas

22/03/2008 15:25:00
Quote Anchor link
Heel erg bedankt Blanche.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
 
Joren de Wit

Joren de Wit

22/03/2008 15:29:00
Quote Anchor link
Mja, het zou absoluut niet mijn manier van aanpak zijn. Mij teveel open gaten die je dicht moet zien te stoppen en een te grote kans dat je er dus een over het hoofd ziet.

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...
 
Bo az

Bo az

22/03/2008 15:54:00
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.