PHP, dan ook SWF! Daarbij geeft ie namelijk ook de niet-geldige-URL-melding.
Voordeel van Flash is dat de bestandjes (mits goed in elkaar gezet) mooi klein kunnen blijven.
+0
Frits
Carloz schreef: Lieve webcie, (staat het nu wel in t goede forum?)
Mijn vraag aan de webcie is of ze het weer mogelijk willen maken om *.php bestanden te accepteren als avatar. Ik wilde namelijk mijn vorige *.php avatar kleiner maken, en zó wijzigen dat er onderin een zwart balkje is met witte tekst (beter leesbaar bij kleinere letters), maar nu ik mijn vorige avatar verwijderd heb, kan ik een nieuwe avatar (die dus verkleind is) niet meer online zetten...
Als je PHP gaat accepteren op een website, dan kun je net zo goed alle wachtwoorden erbij zetten.... voor een beetje kwaadwillende gebruiker is het dan redelijk eenvoudig wat server variabelen te herleiden.
Wil het overigens wel proberen :twisted:
Dus doe maar.....
Ps. ik wil ook geluid bij m'n avatar...
+0
Carloz
Als je PHP gaat accepteren op een website, dan kun je net zo goed alle wachtwoorden erbij zetten.... voor een beetje kwaadwillende gebruiker is het dan redelijk eenvoudig wat server variabelen te herleiden.
Wil het overigens wel proberen
Dus doe maar.....
Dit ben ik niet met je eens Frits.
Mijn bedoeling is dat ik *.php bestanden als link kan opgeven voor mijn avatar. Daarbij zal de code in het script van gsvnet.nl iets zijn als:
<? print '<img src="$variabele">';
waarbij in $variabele, de link is opgeslagen waar de avatar staat (waarschijnlijk uit de db van gsvnet gehaald). De locactie van het plaatje kan dan de server van gsvnet zelf zijn, maar dat kan sinds kort dus ook een externe host zijn.
Sinds de wijziging (van het toestaan van extern hosten van avatars) was het eventjes mogelijk om bijvoorbeeld een avatar als deze : http://roberto.homelinux.net/gd/erwinklein.php te gebruiken. Daarbij kan ik alleen gebruik maken van variabelen die op mijn eigen host beschikbaar zijn, en niet van variabelen die beschikbaar zijn op gsvnet.nl. Als ik in mijn *.php bestand (die ik als avatar gebruik) alleen tekst zet, dan zal het plaatje overigens ook niet werken, het wordt dan door html niet als plaatje herkend.
Dat het plaatje zo nodig een .php extentie moet hebben, is omdat ik graag gebruik wil maken van de zogenaamde GD-library, een functie van php om .png bestanden te maken. Zie hiervoor http://nl2.php.net/manual/nl/ref.image.php
Kortom: door deze functie open te zetten (zoals het eventjes is geweest) kun je als 'gebruiker' van gsvnet geen php-code toevoegen aan gsvnet.nl die gsvnet.nl uitvoert, maar je kunt dan een url opgeven dat verwijst naar een php-bestand op een externe host (waar die php-code dus wél wordt uitgevoerd), wat resulteert in een plaatje op gsvnet.
Als jij dus denkt dat je op die manier wel server-variabelen kan herleiden, dan mag je eens uitleggen hoe, want ik ben er wel vrij zeker van dat dit niet mogelijk is door het openstellen van deze functie.
PS: geluid bij je avatar is ook lache idd, weet je hier nog een leuke functie voor? ;)
+0
Frits
da's waar idd, als je alleen maar naar een externe server verwijst is er nix aan de hand... Maar zoals jij dit hebt gedaan, moet je toch lokale variabelen hebben. '<? $postspieter - $postsroberto ?>' = 1221 toch?
Of verander je die na elk bericht van een van jullie :roll:
Verder snap ik niet wat je wil met een avatar die verwijst naar een .php locatie? Je kunt toch ook gewoon dat .png bestand aanroepen ?? De logica ontgaat me wat je als avatar op php bestand wilt zetten.... maar ja ik heb dan ook weinig kaas gegeten van .png bestanden :oops:
Ps. als je idd bestanden zou kunnen gebruiken als avatar kan ik er wel geluid bij fixen:
Frits schreef: Ps. als je idd bestanden zou kunnen gebruiken als avatar kan ik er wel geluid bij fixen:
Veel te tof, laadt de muziek dan ook automatisch? Dat wordt een gekkenhuis. 'Step right up!' in midi, wie wil daar nu niet bij surfen?
+0
Carloz
Frits schreef: da's waar idd, als je alleen maar naar een externe server verwijst is er nix aan de hand... Maar zoals jij dit hebt gedaan, moet je toch lokale variabelen hebben. '<? $postspieter - $postsroberto ?>' = 1221 toch?
Of verander je die na elk bericht van een van jullie :roll:
Verder snap ik niet wat je wil met een avatar die verwijst naar een .php locatie? Je kunt toch ook gewoon dat .png bestand aanroepen ?? De logica ontgaat me wat je als avatar op php bestand wilt zetten.... maar ja ik heb dan ook weinig kaas gegeten van .png bestanden :oops:
Ps. als je idd bestanden zou kunnen gebruiken als avatar kan ik er wel geluid bij fixen:
"<"embed src="http://www.hittrax.com.au/auditions/AUD_LT2032.mid" autostart="true" width="70" height="24" loop="true"">"
<object width="300" height="45">
<param name="AutoStart" value="true">
<param name="FileName" value="http://www.hittrax.com.au/auditions/AUD_AP0817H.mid">
</object>
Om eerst even op het vet-gedrukte gedeelte uit mijn quote te reageren: Een *.png-bestand, een *.jpg bestand of een *.gif bestand is statisch***. Dat betekent dat als je een avatar tegenkomt met een verwijzing naar een bestand met één van die extenties, dat het bestand er áltijd hetzelfde uit zal zien, tenzij iemand (via een grafisch programma) wijzigingen aanbrengt in zo'n bestand.
Een *.php-bestand is dynamisch, dat betekent dat een php-bestand op het ene moment een andere output kan geven dan een ander moment (afhankelijk van wat je in je script hebt staan).
Je laat je een beetje van de wijs brengen door mijn onderschrift, waarin het lijkt alsof ik toegang heb tot de database van GSV-net. In mijn 'berichten.php' staat inderdaad iets als jij zegt ('<? $postspieter - $postsroberto ?>' ), maar dit script wordt dus op mijn server uitgevoerd, en niet op de server van GSV-net. Hoe ik aan de gegevens kom voor de variabelen is dan nog even een raadseltje, maar daar heb ik dus wat op bedacht ;).
Maar een avatar.php zou zonder problemen bijvoorbeeld elk uur een ander plaatje kunnen tonen (via de date-functie van php, in combinatie met de image-functies van php). Ook kun je dus vrij eenvoudig (eventueel dynamische) teksten toevoegen aan plaatjes.
Mogelijkheden zijn er genoeg.
Om het je even voor te stellen: Zodra je (door topics met mijn onderschrift te openen) mijn avatar.php aanroept, wordt op mijn server een *.png-bestand gecreeërd, waarin dus op datzelfde moment info uit bepaalde variabelen verwerkt kan worden (bijv. het actuele weersbericht wat ik eerder had), en dan wordt dit bestand vervolgens aangemaakt (*.png-bestand). Het png-bestand staat dus niet werkelijk op mijn server, maar die wordt in een temp-dir tijdelijk aangemaakt, en ogenblikkelijk weer verwijderd na het laden van de pagina. Op die manier krijgt de bezoeker dus het plaatje in beeld.
en over *.png-bestanden: dit is niets meer en niets minder dan de betere opvolger van *.gif-bestanden.
Overigens: jouw stukje code zou dus helaas niet werken :( of misschien gelukkig maar, anders doet iedereen dat, en heb je 20 geluiden door elkaar heen spelen...
Je kunt gsvnet.nl dus niet zomaar een stukje code laten uitvoeren (zoals jij postte), want het komt op de plek die ik aanwees, namelijk in de <img src="$HIER;)"> tag...
En gelukkig hoef ik niet iedere keer mijn onderschrift aan te passen als Pieter weer eens post... Daar zou ik een dagtaak aan hebben ;)
*** Ik kan me voorstellen dat een *.png bestand hier wat verwarring oproept. *.png-bestanden opzichzelf zijn statisch, maar deze worden in mijn geval opgemaakt door het dynamische php. Ik zou dus een *.png-bestand op mijn server kunnen zetten en daarnaar linken, alleen dan kan ik er dus niets in verwerken (als teksten of andere gekkigheid)
+0
Carloz
Loewie schreef: [..]Veel te tof, laadt de muziek dan ook automatisch? Dat wordt een gekkenhuis. 'Step right up!' in midi, wie wil daar nu niet bij surfen?
Carloz schreef: Overigens: jouw stukje code zou dus helaas niet werken :( of misschien gelukkig maar, anders doet iedereen dat, en heb je 20 geluiden door elkaar heen spelen...
Je kunt gsvnet.nl dus niet zomaar een stukje code laten uitvoeren (zoals jij postte), want het komt op de plek die ik aanwees, namelijk in de <img src="$HIER;)"> tag...
Helaas Loewie, dat gaat dus niet door! Alhoewel, jij zit toch ook in de webcie? Dan zou je het mogelijk kunnen maken :P
+0
JP.
Wat een gehannes zeg. :?
Oh ja, met Flash kun je wel geluid aan je avatar hangen, DubbelFrits.
+0
Carloz
Ik ben misschien wel voor swf avatars (als mensen daarmee iets mooiers kunnen maken), maar niet voor geluiden...
Binnen een paar uur word je dan volgens mij gillend gek.
(ik herinner me nog een banner als promotie voor een klaverjasavond (voor amicaal weekend of zo) in swf met geluid. Hier waren de meeste mensen zeer snel op uitgekeken...
PS: frits, is dat je nieuwste beltoon? Die mid-file? :)
+0
JP.
Sowieso moeten alle sites met muziek eraan vast van de hele internet verbannen worden. Een avatar met geluid zul je bij mij dus nimmer zien.
Voordeel van swf is echter dat het messcherp is. Animaties hoeven niet eens zo nodig.
+0
Pieter
ik zie dat je een enorm verhaal hebt geschreven..
lees ik zo maar weer es.
1 ding moge duidelijk zijn, ik heb géén dingen gewijzigd waardoor je eerdere avatars niet meer werken..
misschien een server wijziging op jouw pc?
enne flash avatars wie weet een volgende keer..
+0
Carloz
Misschien heb jij geen dingen gewijzigd waardoor eerdere avatars niet meer werken, maar ik vermoed dat één van de andere webcieleden het dan wel hebben gedaan. Het heeft hoogst waarschijnlijk te maken met het script dat controleert of je avatar niet groter is dan 80x80 pixels. Sinds de invoering van dat script, kan ik geen php-bestanden meer als avatar hosten. Ik vermoed dat dat script alleen .jpg en .gif (en misschien *.bmp) bestanden accepteert, en anders het plaatje voor 'ongeldig' verklaart.
Ennehh dit is geen wijziging in mijn server; vanaf betaalde hosts accepteert gsvnet.nl evengoed de avatar niet.
Op tweakers.net en minddigger.com denken ze dat de onbereikbaarheid van mijn server voor enkelen, te maken heeft met het feit dat we dan beide bij de RUG zitten, en op de zelfde gate-way aangeloten zijn, en dat dit problemen oplevert. Het precieze technische verhaal voert hier wat tever, maar feit is dat gsvnet.nl hier geen last van heeft, dus that's not the problem.
Blits printer-icoon trouwens, beetje offtopic, maar ja, om daar nu een heel nieuw topic voor te openen... :roll:
echter zou dit niet van invloed moeten zijn op je sig :roll:
edit: dit heeft idd geen invloed op je sig, die doet het nl. gewoon.. ;)
+0
Carloz
Volgens mij zit het 'probleem' in dit stukje code:
In nederlands zegt het stukje code van de php-functie preg_match() dat als het bestand niet eindigt op .gif, .jpg, .jpeg of .png dat de variabele $error true is, en dat er dus een foutmelding gegeven wordt.
Zou het moeten werken, alleen ik heb 't nog niet getest, dus dat kan ik nog wel even doen ;)
Overigens is hiermee de vraag nog niet opgelost waarom ik voor het verwijderen van mijn avatar ergens, ooit wél een php-bestand heb kunnen gebruiken als externe avatar, ik vermoed dat deze if-structuur er niet vanaf het begin in heeft gezeten (of dat deze een tijdje in het commentaar heeft gestaan, en dus niet actief was).
+0
Pieter
Carloz schreef: Overigens is hiermee de vraag nog niet opgelost waarom ik voor het verwijderen van mijn avatar ergens, ooit wél een php-bestand heb kunnen gebruiken als externe avatar, ik vermoed dat deze if-structuur er niet vanaf het begin in heeft gezeten (of dat deze een tijdje in het commentaar heeft gestaan, en dus niet actief was).
en daarom geloof ik er ook niet in dat dat dé oorzaak is waarom het nu opeens niet werkt, of waarom het dus wél heeft gewerkt..
de vraag blijft nog wel of dit bepaalde veiligheidsrisico's met zich mee brengt, waarschijnlijk niet, want phpbb staat het wel toe in de sig.
+0
Carloz
Dan ben ik zeer benieuwd naar jouw ideeën hierover :)
Als ik die code zo lees, móet het haast wel daarin gelegen hebben, óf de server heeft zich een paar keer verslikt terwijl ik mijn avatar-url invoerde (of wat dus ook nog een eventuele mogelijkheid zou kunnen zijn, is dat het (controle)script (nog) niet goed werkte). Ik heb namelijk zeker weten een tijd rondgelopen met http://bovenlader.no-ip.com/gd/avatar.php. En sja dit script controleert of hij de url wel of niet accepteert. Als je er zo zeker van bent dat dít niet de oorzaak is dat ik wel een php-avatar heb kunnen gebruiken, dan blijft de vraag nog in 't midden hoe het dan wel heeft gekund. Mijn eigen antwoord op de vraag zou toch gauw in de hoek komen van: toen was het script nog niet compleet of zo, waardoor mijn url er toen 'tussendoor geglipt' is. Want dat hij er heeft gestaan, is gewoon een feit.
Ennehh over de veiligheid: Ik heb nog even in de broncode gekeken, en als je daarin bijvoorbeeld op zoek gaat naar jouw avatar, dan zie je het volgende eromheen:
Wat er dus volgens mij gebeurt is het volgende:
Bij het script van ‘mijn profiel’ wordt de url gecontroleerd, en als hij is goedgekeurd door preg_match(), dan wordt hij in de database opgeslagen, (anders dus niet, en krijg je een foutmelding). En wanneer hij is opgeslagen, komt hij (de link dus) alleen terecht in de <img>tag, wat dus verder ongevaarlijk is. De <img>-tag, kan alleen plaatjes uitlezen, en dat is een html-tag, die zeker geen php-scripts kan uitvoeren. Dus wat Frits eerst zei, over de mogelijkheden van kwaadwillende gebruikers is niet waar. Dat heb ik ook verder uitgelegd in voorgaande posts.
+0
Carloz
Wat ook nog een mogelijke oplossing is, die me nu ineens wel vrij waarschijnlijk lijkt, is dat jullie eerst de regular expression gebruikten die nu in het commentaar staat. Die accepteert namelijk wél php-avatars.
Hieronder de oude regex (die nu dus in 't commentaar staat)...
Code: Select All Code<?
$avatar_filename='http://roberto.homelinux.net/gd/avatar.php';
//oude pregmatch
if ( !preg_match('#^((http)|(ftp):\/\/[a-zA-Z0-9\-]+?\.([a-zA-Z0-9\-]+\.)+[a-zA-Z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename))
{print 'Geen goede avatar';
}else{
print 'Wel een goede avatar';
}
?>
>>deze accepteert dus wél avatars als http://roberto.homelinux.net/gd/avatar.php
(sterker nog, deze accepteert alle extenties)
De code van de oude regex had als volgt moeten zijn: (alleen verandering in haakjes):
Code: Select All Code$avatar_filename='ftp://roberto.homelinux.net/gd/avatar.jpg';
//oude pregmatch
if ( !preg_match('#^((http|ftp):\/\/[a-zA-Z0-9\-]+?\.([a-zA-Z0-9\-]+\.)+[a-zA-Z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename))
{print 'Geen goede avatar';
}else{
print 'Wel een goede avatar';
}
De code zoals hij nu is:
Code: Select All Code
<?
$avatar_filename='http://roberto.homelinux.net/gd/avatar.php';
if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) )
{
$avatar_filename = 'http://' . $avatar_filename;
}
if ( !preg_match('(gif|jpg|jpeg|png)', end(split("\.",$avatar_filename))) )
{
print 'Geen goede avatar';
}
else {
print 'Wel een goede avatar';
}
?>
levert de uitkomst 'geen goede avatar'.
Dus ik vermoed dan in oplossing van de vraag waarom ik eerder wel php-bestanden kon uploaden, dat de regex die momenteel in het commentaar weergegeven is, een tijdje gebruikt is, in plaats van de regex die momenteel in gebruik is.
+0
Marnix
Je wint er alleen geen bandbreedte mee, het forum wordt wel trager ingeladen als je grotere plaatjes gebruikt.
PHP, dan ook SWF! Daarbij geeft ie namelijk ook de niet-geldige-URL-melding.
Voordeel van Flash is dat de bestandjes (mits goed in elkaar gezet) mooi klein kunnen blijven.
Als je PHP gaat accepteren op een website, dan kun je net zo goed alle wachtwoorden erbij zetten.... voor een beetje kwaadwillende gebruiker is het dan redelijk eenvoudig wat server variabelen te herleiden.
Wil het overigens wel proberen :twisted:
Dus doe maar.....
Ps. ik wil ook geluid bij m'n avatar...
Dit ben ik niet met je eens Frits.
Mijn bedoeling is dat ik *.php bestanden als link kan opgeven voor mijn avatar. Daarbij zal de code in het script van gsvnet.nl iets zijn als:
<? print '<img src="$variabele">';
waarbij in $variabele, de link is opgeslagen waar de avatar staat (waarschijnlijk uit de db van gsvnet gehaald). De locactie van het plaatje kan dan de server van gsvnet zelf zijn, maar dat kan sinds kort dus ook een externe host zijn.
Sinds de wijziging (van het toestaan van extern hosten van avatars) was het eventjes mogelijk om bijvoorbeeld een avatar als deze : http://roberto.homelinux.net/gd/erwinklein.php te gebruiken. Daarbij kan ik alleen gebruik maken van variabelen die op mijn eigen host beschikbaar zijn, en niet van variabelen die beschikbaar zijn op gsvnet.nl. Als ik in mijn *.php bestand (die ik als avatar gebruik) alleen tekst zet, dan zal het plaatje overigens ook niet werken, het wordt dan door html niet als plaatje herkend.
Dat het plaatje zo nodig een .php extentie moet hebben, is omdat ik graag gebruik wil maken van de zogenaamde GD-library, een functie van php om .png bestanden te maken. Zie hiervoor http://nl2.php.net/manual/nl/ref.image.php
Kortom: door deze functie open te zetten (zoals het eventjes is geweest) kun je als 'gebruiker' van gsvnet geen php-code toevoegen aan gsvnet.nl die gsvnet.nl uitvoert, maar je kunt dan een url opgeven dat verwijst naar een php-bestand op een externe host (waar die php-code dus wél wordt uitgevoerd), wat resulteert in een plaatje op gsvnet.
Als jij dus denkt dat je op die manier wel server-variabelen kan herleiden, dan mag je eens uitleggen hoe, want ik ben er wel vrij zeker van dat dit niet mogelijk is door het openstellen van deze functie.
PS: geluid bij je avatar is ook lache idd, weet je hier nog een leuke functie voor? ;)
da's waar idd, als je alleen maar naar een externe server verwijst is er nix aan de hand... Maar zoals jij dit hebt gedaan, moet je toch lokale variabelen hebben. '<? $postspieter - $postsroberto ?>' = 1221 toch?
Of verander je die na elk bericht van een van jullie :roll:
Verder snap ik niet wat je wil met een avatar die verwijst naar een .php locatie? Je kunt toch ook gewoon dat .png bestand aanroepen ?? De logica ontgaat me wat je als avatar op php bestand wilt zetten.... maar ja ik heb dan ook weinig kaas gegeten van .png bestanden :oops:
Ps. als je idd bestanden zou kunnen gebruiken als avatar kan ik er wel geluid bij fixen:
<embed src="http://www.hittrax.com.au/auditions/AUD_LT2032.mid" autostart="true" width="70" height="24" loop="true">
<object width="300" height="45">
<param name="AutoStart" value="true">
<param name="FileName" value="http://www.hittrax.com.au/auditions/AUD_AP0817H.mid">
</object>
Veel te tof, laadt de muziek dan ook automatisch? Dat wordt een gekkenhuis. 'Step right up!' in midi, wie wil daar nu niet bij surfen?
Helaas Loewie, dat gaat dus niet door! Alhoewel, jij zit toch ook in de webcie? Dan zou je het mogelijk kunnen maken :P
Wat een gehannes zeg. :?
Oh ja, met Flash kun je wel geluid aan je avatar hangen, DubbelFrits.
Ik ben misschien wel voor swf avatars (als mensen daarmee iets mooiers kunnen maken), maar niet voor geluiden...
Binnen een paar uur word je dan volgens mij gillend gek.
(ik herinner me nog een banner als promotie voor een klaverjasavond (voor amicaal weekend of zo) in swf met geluid. Hier waren de meeste mensen zeer snel op uitgekeken...
PS: frits, is dat je nieuwste beltoon? Die mid-file? :)
Sowieso moeten alle sites met muziek eraan vast van de hele internet verbannen worden. Een avatar met geluid zul je bij mij dus nimmer zien.
Voordeel van swf is echter dat het messcherp is. Animaties hoeven niet eens zo nodig.
ik zie dat je een enorm verhaal hebt geschreven..
lees ik zo maar weer es.
1 ding moge duidelijk zijn, ik heb géén dingen gewijzigd waardoor je eerdere avatars niet meer werken..
misschien een server wijziging op jouw pc?
enne flash avatars wie weet een volgende keer..
Misschien heb jij geen dingen gewijzigd waardoor eerdere avatars niet meer werken, maar ik vermoed dat één van de andere webcieleden het dan wel hebben gedaan. Het heeft hoogst waarschijnlijk te maken met het script dat controleert of je avatar niet groter is dan 80x80 pixels. Sinds de invoering van dat script, kan ik geen php-bestanden meer als avatar hosten. Ik vermoed dat dat script alleen .jpg en .gif (en misschien *.bmp) bestanden accepteert, en anders het plaatje voor 'ongeldig' verklaart.
Ennehh dit is geen wijziging in mijn server; vanaf betaalde hosts accepteert gsvnet.nl evengoed de avatar niet.
Op tweakers.net en minddigger.com denken ze dat de onbereikbaarheid van mijn server voor enkelen, te maken heeft met het feit dat we dan beide bij de RUG zitten, en op de zelfde gate-way aangeloten zijn, en dat dit problemen oplevert. Het precieze technische verhaal voert hier wat tever, maar feit is dat gsvnet.nl hier geen last van heeft, dus that's not the problem.
Blits printer-icoon trouwens, beetje offtopic, maar ja, om daar nu een heel nieuw topic voor te openen... :roll:
Voorbeeld avatar dat opzich aan de eisen van 80x80 voldoet: http://bovenlader.no-ip.com/gd/avatar.php
ik was even aan het testen, misschien worden ze nog veel mooier...
Hey, krijgen we dan échte zelfgemaakte dingen op de saait? Goed bezig :lol:
goed roberto, jij je zin, ik had idd de grootte aangepast... fftjes vergeten ;)
dit is er veranderd:
Code: Select All Codeoriginele code: function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename) { if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) ) { $avatar_filename = 'http://' . $avatar_filename; } //if ( !preg_match('#^((http)|(ftp):\/\/[a-zA-Z0-9\-]+?\.([a-zA-Z0-9\-]+\.)+[a-zA-Z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename) ) if ( !preg_match('(gif|jpg|jpeg|png)', end(split("\.",$avatar_filename))) ) { $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; return; } return ( $mode == 'editprofile' ) ? ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_REMOTE : ''; } nieuwe code: function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename) { global $board_config, $lang; if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) ) { $avatar_filename = 'http://' . $avatar_filename; } //if ( !preg_match('#^((http)|(ftp):\/\/[a-zA-Z0-9\-]+?\.([a-zA-Z0-9\-]+\.)+[a-zA-Z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename) ) if ( !preg_match('(gif|jpg|jpeg|png)', end(split("\.",$avatar_filename))) ) { $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; return; } list($width, $height) = @getimagesize($avatar_filename); if ( ($width > $board_config['avatar_max_width']) || ($height > $board_config['avatar_max_height']) ) { $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size; return; } return ( $mode == 'editprofile' ) ? ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_REMOTE : ''; }
echter zou dit niet van invloed moeten zijn op je sig :roll:
edit: dit heeft idd geen invloed op je sig, die doet het nl. gewoon.. ;)Volgens mij zit het 'probleem' in dit stukje code:
Code: Select All CodeIn nederlands zegt het stukje code van de php-functie preg_match() dat als het bestand niet eindigt op .gif, .jpg, .jpeg of .png dat de variabele $error true is, en dat er dus een foutmelding gegeven wordt.
if ( !preg_match('(gif|jpg|jpeg|png)', end(split("\.",$avatar_filename))) ) { $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; return; }
Als je dat vervangt door dit:
Code: Select All Codeif ( !preg_match('(gif|jpg|jpeg|png|php)', end(split("\.",$avatar_filename))) ) { $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; return; }
Zou het moeten werken, alleen ik heb 't nog niet getest, dus dat kan ik nog wel even doen ;)
Overigens is hiermee de vraag nog niet opgelost waarom ik voor het verwijderen van mijn avatar ergens, ooit wél een php-bestand heb kunnen gebruiken als externe avatar, ik vermoed dat deze if-structuur er niet vanaf het begin in heeft gezeten (of dat deze een tijdje in het commentaar heeft gestaan, en dus niet actief was).
en daarom geloof ik er ook niet in dat dat dé oorzaak is waarom het nu opeens niet werkt, of waarom het dus wél heeft gewerkt..
de vraag blijft nog wel of dit bepaalde veiligheidsrisico's met zich mee brengt, waarschijnlijk niet, want phpbb staat het wel toe in de sig.
Dan ben ik zeer benieuwd naar jouw ideeën hierover :)
Als ik die code zo lees, móet het haast wel daarin gelegen hebben, óf de server heeft zich een paar keer verslikt terwijl ik mijn avatar-url invoerde (of wat dus ook nog een eventuele mogelijkheid zou kunnen zijn, is dat het (controle)script (nog) niet goed werkte). Ik heb namelijk zeker weten een tijd rondgelopen met http://bovenlader.no-ip.com/gd/avatar.php. En sja dit script controleert of hij de url wel of niet accepteert. Als je er zo zeker van bent dat dít niet de oorzaak is dat ik wel een php-avatar heb kunnen gebruiken, dan blijft de vraag nog in 't midden hoe het dan wel heeft gekund. Mijn eigen antwoord op de vraag zou toch gauw in de hoek komen van: toen was het script nog niet compleet of zo, waardoor mijn url er toen 'tussendoor geglipt' is. Want dat hij er heeft gestaan, is gewoon een feit.
Ennehh over de veiligheid: Ik heb nog even in de broncode gekeken, en als je daarin bijvoorbeeld op zoek gaat naar jouw avatar, dan zie je het volgende eromheen:
Code: Select All Code<img src="http://home.planet.nl/~bezem211/gsv/vandevaart.gif" alt="" border="0" />
Wat er dus volgens mij gebeurt is het volgende:
Bij het script van ‘mijn profiel’ wordt de url gecontroleerd, en als hij is goedgekeurd door preg_match(), dan wordt hij in de database opgeslagen, (anders dus niet, en krijg je een foutmelding). En wanneer hij is opgeslagen, komt hij (de link dus) alleen terecht in de <img>tag, wat dus verder ongevaarlijk is. De <img>-tag, kan alleen plaatjes uitlezen, en dat is een html-tag, die zeker geen php-scripts kan uitvoeren. Dus wat Frits eerst zei, over de mogelijkheden van kwaadwillende gebruikers is niet waar. Dat heb ik ook verder uitgelegd in voorgaande posts.
Wat ook nog een mogelijke oplossing is, die me nu ineens wel vrij waarschijnlijk lijkt, is dat jullie eerst de regular expression gebruikten die nu in het commentaar staat. Die accepteert namelijk wél php-avatars.
Hieronder de oude regex (die nu dus in 't commentaar staat)...
Code: Select All Code<? $avatar_filename='http://roberto.homelinux.net/gd/avatar.php'; //oude pregmatch if ( !preg_match('#^((http)|(ftp):\/\/[a-zA-Z0-9\-]+?\.([a-zA-Z0-9\-]+\.)+[a-zA-Z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename)) {print 'Geen goede avatar'; }else{ print 'Wel een goede avatar'; } ?>
>>deze accepteert dus wél avatars als http://roberto.homelinux.net/gd/avatar.php (sterker nog, deze accepteert alle extenties) De code van de oude regex had als volgt moeten zijn: (alleen verandering in haakjes): Code: Select All Code$avatar_filename='ftp://roberto.homelinux.net/gd/avatar.jpg'; //oude pregmatch if ( !preg_match('#^((http|ftp):\/\/[a-zA-Z0-9\-]+?\.([a-zA-Z0-9\-]+\.)+[a-zA-Z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename)) {print 'Geen goede avatar'; }else{ print 'Wel een goede avatar'; }
De code zoals hij nu is: Code: Select All Code<? $avatar_filename='http://roberto.homelinux.net/gd/avatar.php'; if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) ) { $avatar_filename = 'http://' . $avatar_filename; } if ( !preg_match('(gif|jpg|jpeg|png)', end(split("\.",$avatar_filename))) ) { print 'Geen goede avatar'; } else { print 'Wel een goede avatar'; } ?>
levert de uitkomst 'geen goede avatar'. Dus ik vermoed dan in oplossing van de vraag waarom ik eerder wel php-bestanden kon uploaden, dat de regex die momenteel in het commentaar weergegeven is, een tijdje gebruikt is, in plaats van de regex die momenteel in gebruik is.Je wint er alleen geen bandbreedte mee, het forum wordt wel trager ingeladen als je grotere plaatjes gebruikt.