Ik val een beetje in de discussie, maar je wilt geen php bestanden als avatar, je kunt nl heel makkelijk php patches schrijven en derglijke (die iets engs doen met je database) die uitgevoerd wordt wanneer deze als avatar worden ingeladen..
maarre pieter, heb je deze code zelf geschreven? denk het niet anders was deze discussie er niet
+0
Pieter
Marnix schreef: Ik val een beetje in de discussie, maar je wilt geen php bestanden als avatar, je kunt nl heel makkelijk php patches schrijven en derglijke (die iets engs doen met je database) die uitgevoerd wordt wanneer deze als avatar worden ingeladen..
probleem zat hem in het feit dat dat juist wel mogelijk was met de code zoals die 'standaard' in phpbb is, maar pas niet meer nadat ik de wijziging doorgevoerd had dat de grootte van remote avatars gebonden aan limieten werd.
de meeste toevoegingen (mods) op deze site komen van:
http:/www.phpbbhacks.com of development subforum van http://www.phpbb.com
+0
Marnix
Dat vermoede ik al. trouwens over gebvaar van php zelf zat ik er naast, maar je kan er wel een stukje javascript inladen (via een php bestand).
php is serverside, dus zal het nooit schade aan jullie database kunnen aanrichten, maar dit is offtopic :wink:
+0
Carloz
Marnix schreef: Dat vermoede ik al. trouwens over gebvaar van php zelf zat ik er naast, maar je kan er wel een stukje javascript inladen (via een php bestand).
php is serverside, dus zal het nooit schade aan jullie database kunnen aanrichten, maar dit is offtopic :wink:
Volgens mij zit je ook met het Javascript gedeelte ernaast. Ik heb het eerder uitgelegd, maar dan nu nog maar één keer. Daarna kun je me wijzen op eventuele 'fouten' in mijn redenering.
Het script werkt zó dat bij mijn profiel alleen bestanden met een bepaalde extentie wordt geaccepteerd. Momenteel zit *.php daar niet bij. Als dat er wel bij zou zitten (is een kleine toevoeging aan de bestaande regular expression), dan gebeurt het volgende:
1: bij 'mijn profiel' wordt een link-tekst alleen opgeslagen als hij voldoet aan de regular expression die actief is, anders krijg je een foutmelding over een ongeldige url.
2: Als de url is opgeslagen, is verder het enige wat ermee gebeurt het volgende: namelijk dat het in de <img> tag wordt verwerkt. Het ziet er dus ongeveer zo uit: <img src="<?echo $linkurluitdedatabase;?>" alt="">, waarbij dus alleen de link uit de database wordt weergegeven door de <img> tag als er daadwerkelijk een plaatje weer te geven is. Als je d.m.v. php-bestanden of d.m.v. javascripts tekst probeert te sturen, dan zal de link NIET werken. Het is immers geen plaatje. Zo ook bij php-scripts; php heeft een aantal image-functions ingebouwd, waarmee je plaatjes kunt maken en bewerken. De zogenaamde GD-library. Deze is niet zo bekend, en is er meer informatie over. Het php-script wordt dus op de externe server uitgevoerd (dus idd serverside), en wordt dan naar de server van gsvnet gestuurd om het bedoelde weer te geven.
Kortom: laat je php-bestanden toe in de Regular Expression in mijn profiel, dan kun je NIET zorgen dat je php-scripts op gsvnet uitvoert. Hetzelfde geldt ook voor javascripts etc. Ik snap alleen wel waarom jij er bang voor bent dat het niet 'veilig' is, maar dat 'gevaar' (voor zover je met javascripts gevaarlijk kunt zijn; volgens mij kun je er vooral irritant mee zijn (irri javascript alerts die door gebruikers ineens toegevoegd kunnen worden zonder dat webmasters dat willen) is er alleen wanneer je vanuit de database, teksten gaat ophalen uit de database, waarin javascripts en php-scripts verwerkt zijn.
In dat geval kun je vanalles op de gsvnet server ophalen. Je kunt dan d.m.v. functies als file_get_contents() vrij gemakkelijk allerlei passwords van gsvnet halen. Maar hier is dat niet aan de orde. De tekst uit de database (de opgeslagen url) wordt alleen in de <img> tag gebruikt, en is daardoor ongevaarlijk.
Ik ben ondertussen eigenlijk ook wel benieuwd naar de mening van de webcie hierover. Ik kan me voorstellen dat ze hierover wel zekerheid willen, maar wat mij betreft is die zekerheid er :).
Ik las na het typen van het bericht nog dit:
Marnix schreef: Dat vermoede ik al. trouwens over gebvaar van php zelf zat ik er naast, maar je kan er wel een stukje javascript inladen (via een php bestand).
Dus tijd voor nog een toevoeging: voor iedereen die (nog) denkt dat je hiermee wél allerlei ongewenste zaken kunt achterhalen of uitvoeren een testje:
Ik heb de volgende (sterk vereenvoudigde) code die vergelijkbaar is met de situatie die hier besproken wordt.
Code: Select All Code<img src="<?print $_GET['url'];?>">
Wie vertelt mij mijn 'database' gegevens? Wie legt me uit hoe je hierbij allerlei ongewenste scripts toe kan staan? Een plaatje geef je weer door de link te veranderen in de voorbeeld url, dus door deze link in de browser in te voeren, krijg je de avatar van Pieter:
http://bovenlader.no-ip.com/test.php?ur ... evaart.gif
Ik ben het ermee eens dat het makkelijker werd wanneer de code het volgende geweest zou zijn:
Code: Select All Code<?
print $_GET['url'];
?>
Want in dát geval, kun je inderdaad zaken invoeren als javascript.alert('ongewenste alert!! haha');' En misschien nog wel ergere dingen. Overigens zijn daar ook weer vrij makkelijk maatregelen voor om dat probleem op te heffen, anders kon een forum als deze niet bestaan.
Nou, stuur me maar een mailtje als 't gelukt is; of zet 't op de frontpage van mijn website :)
PS: als je denkt dat het voorbeeld niet 'eerlijk' is, dan kun je hier uitleggen waarom niet; volgens mij is de situatie namelijk exact vergelijkbaar
+0
Marnix
Ik ben ook even aan het knutselen geweest en heb deze toevoeging gedaan:
Code: Select All Codefunction remotefiletoobig($file,$maxbytes) {
// $maxbytes; // in bytes
// Open the file, but only read maximum size
$fp = fopen($file, "r");
$first_file_size_read = fread($fp, $maxbytes + 1);
fclose($fp);
return (strlen($first_file_size_read) > $maxbytes);
}
en in 'function user_avatar_url' zelf:
Code: Select All Codeif(remotefiletoobig($avatar_filename,12288)){//12288=12kb
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . '<br /> bestand te groot' : 'bestand te groot';
return;
}
Het is een beetje een statische code maar ik vondt het zo wel prima.
Deze code stelt perken aan de remote plaatjes ofwel de de url plaatjes van een andere server.
Om de site niet te traag te maken mag je nu plaatjes tot en met 12 kb gebruiken.
ik heb op mijn site een probleempje, als ik een nieuw onderwerp begin en hem post zonder een onderwerp op te geven krijg je een error tekst (net als bij een fout bij je avatar.
Nu is de achtergrond hiervan bij mij zwart, terwijl ik alles al bij langs ben geweest (in de styleschheets).
Weten jullie waar ik het moet vinden? Dus de achtergrond van de error teksten bij posten of bij het uploaden van een avatar.
+0
Carloz
Stylescheets haha leuke benaming; maar wat is je site? adtempusvitae.nl?
+0
Carloz
Ik heb even voor je gekeken, en uit de bron (rechtermuisknop >> bron weergeven) blijkt dat het om de volgende code gaat.
Code: Select All Code<table class="forumline" width="100%" cellspacing="1" cellpadding="4" border="0">
<tr>
<td><table width="100%" cellspacing="0" cellpadding="1" border="0">
<tr>
<td>&</td>
</tr>
<tr>
<td align="center"><span class="gen">Je moet een titel opgeven als je een nieuw onderwerp opent.</span></td>
</tr>
<tr>
<td>&</td>
</tr>
</table>
Twee zaken zijn hierin 'verdacht' namelijk de class 'gen' en de class 'forumline'. Ik heb ook even je stylesheet gedownload, om te kijken wat de oorzaak is, en het blijkt dat je de volgende code hebt geplaatst bij de class forumline.
stylesheet van de ATV-site schreef: .forumline { background-color: #000000; border: 1px #000000 solid; }/*tabel lijnen*/
als je dan een tabel maakt (wat in de bovenstaande code gebeurt), dan past hij hierop de forum-line class toe zoals deze gedefinieerd is in de stylesheet, dus wordt de achtergrond zwart.
Oplossing? >> Verwijder class="forumline" uit (waarschijnlijk) posting.php.
:lol:
+0
Lennert
Allemaal leuk en aardig jongens, maar zullen we het gewoon even over de nieuwe avatar mogelijkheden hebben? ja? goedzo :)
+0
Marnix
En dan lijkt het opeens weer zo simpel :oops:
Maar idd geval bedankt!
+0
Marnix
Ik kon me dit topic nog herinneren, toen ik dit las:
Ik vermoed dat hier eerder validatie via JavaScript is toegepast, gezien de hoeveelheid JavaScript er op de site gebruikt wordt. Op die manier kun je precies zien waarop gecontroleerd wordt (bijvoorbeeld of het einde van de tekst op jpg of gif endigt etc...) en doordat je zoveel kunt zien, zie je ook precies waar eventuele foutjes zitten; om hier eens lekker misbruik van te maken. Via phpfuncties als file_get_contents() kun je dan idd de gegevens achterhalen van de hele site (als je interne links gebruikt en als je weet in welke hoofdscipts de wachtwoorden staan.) Daar kom je natuurlijk gauw genoeg achter; dat zal 2 of 3 keer proberen zijn, en dan weet je het.
Overigens staat op nu.nl dat er wordt gecontroleerd of iets een plaatje is, maar dat is niet eens waar. Het script controleert alleen of het eindigt op jpg of gif; dus je kunt nu alsnog ongeldige plaatjes invoeren. Ik zeg: als je iets doet, doe het dan ook meteen goed.
Je kunt via php makkelijk eerst controleren of het (externe) bestand echt een plaatje is (via getimagesize, kijken of het mime type van de opgegeven link idd "image" is). Vervolgens moet je het ingevoerde zó behandelen dat het nóóit zo kan zijn dat dat wat ingevoerd is door gebruikers, zondermeer als phpcode kan worden uitgevoerd. Dan kun je inderdaad beter direct je wachtwoorden op de frontpage zetten.
Er is een functie die je kunt gebruiken zodat je zeker weet dat de ingevoerde code niet voor misbruik gebruikt kan worden, en dat is htmlspecialchars(). Die zet alle 'special chars' als ' " < > etc. om in html tekens, zodat het geen phpscript meer is, maar de uitvoer nog 't zelfde lijkt. Ik weet niet of in het onderschrift en in het avatarscript hiervan gebruik gemaakt wordt (niet gekeken), maar dat is opzich wel handig om te doen, als extra zekerheid.
+0
JP.
Zeg Webcie,
Mij is opgevallen dat er iemand is met een avatar van 100x100 pixels. Nou maakt dat me in principe niet zoveel uit, maar kan ik dan ook ergens ontheffing van de 80x80 regel aanvragen?
+0
Robbert
Ohw je zult mij wel bedoelen. Ik vond uhm ook al wat groter dan die van de rest. Ik heb hem gewoon via een url geupload. Ik heb dat nog nooit gedaan, maar als dit niet mag haal ik um wel weer af.
Als het wel mag dan moet iedereen effe bij het tabblad van zijn MSN messenger kijken met die voetbal erop. Daar vind je nog meer heineken-avatars. En sowieso staan er wel lachen dingen op.
+0
Carloz
Code: Select All Codeif($username != 'Robbert';
{
$action='deny avatar';
}
else
{
$action='accept avatar';
}
:lol:
Ik krijg namelijk wel foutmeldingen bij dezelfde avatar...
+0
Carloz
Ik zag laatst trouwens nog iets wat ik niet wist, en wat voor gsvnet ook wel es handig zou (kunnen) zijn. Ik zie namelijk vaak avatars, waarbij de link niet klopt, of niet werkt, en je dus zo'n rood kruisje krijgt, omdat de avatar niet wil laden.
Ter voorkoming van de gewraakte roode kruisjes bij bijvoorbeeld avatars (links die niet werken) heeft html het volgende ingebouwd, waarmee je een alternatief plaatje kunt opgeven, die geladen wordt als het 'normale plaatje' niet blijkt te kunnen laden...
Als 'mijnplaatje.gif' dus niet bestaat, probeertie alternatiefplaatje.jpg te laden. Zo heb je dus altijd óf het bedoelde plaatje, of een plaatje van gsvnet zelf...
Zie maar wat jullie ermee doen...
+0
JP.
Ikke niks. Gewoon zorgen dat je plaatje beschikbaar blijft :wink:
Maar die avatar van Robbert is dus een uitzondering/vergissing?
+0
Pieter
Dat lijkt me wel. :? :roll:
Opzich zou de lengte/breedte best wel groter kunnen worden gemaakt zie ik nu overigens. In ieder geval wordt bij mij de breedte van de kolom waar de avatar in staat bepaald door de tekst: "Lid sinds: 31 Jan 2003" die veruit breder is dan 80 pixels.. Daar moet de Webcie maar eens over na gaan denken ;)
+0
Robbert
Ja tzou kunnen dat dat ding bij 'per ongeluk' gelukt is, maar daarnet deed hij het al niet meer. Ik weet niet of er is 'ingegrepen' of dat er alsnog gewoon geen mogelijkgheid toe is
+0
Tolle
volgens mij werkt dat avatar scriptstukje alleen bij het uploaden, als Robbert dan net zijn avatar had geupload toen het script nog niet in werking was gesteld zou het kunnen dat zijn avatar wel weergegeven werdt maar naderhand niet meer geupload kon worden (omdat het script dan zei dat de avatar te groot was)
+0
JP.
Pieter schreef: Opzich zou de lengte/breedte best wel groter kunnen worden gemaakt zie ik nu overigens. In ieder geval wordt bij mij de breedte van de kolom waar de avatar in staat bepaald door de tekst: "Lid sinds: 31 Jan 2003" die veruit breder is dan 80 pixels.. Daar moet de Webcie maar eens over na gaan denken ;)
Ik val een beetje in de discussie, maar je wilt geen php bestanden als avatar, je kunt nl heel makkelijk php patches schrijven en derglijke (die iets engs doen met je database) die uitgevoerd wordt wanneer deze als avatar worden ingeladen..
maarre pieter, heb je deze code zelf geschreven? denk het niet anders was deze discussie er niet
probleem zat hem in het feit dat dat juist wel mogelijk was met de code zoals die 'standaard' in phpbb is, maar pas niet meer nadat ik de wijziging doorgevoerd had dat de grootte van remote avatars gebonden aan limieten werd.
de meeste toevoegingen (mods) op deze site komen van:
http:/www.phpbbhacks.com of development subforum van http://www.phpbb.com
Dat vermoede ik al. trouwens over gebvaar van php zelf zat ik er naast, maar je kan er wel een stukje javascript inladen (via een php bestand).
php is serverside, dus zal het nooit schade aan jullie database kunnen aanrichten, maar dit is offtopic :wink:
<img src="<?print $_GET['url'];?>">
Wie vertelt mij mijn 'database' gegevens? Wie legt me uit hoe je hierbij allerlei ongewenste scripts toe kan staan? Een plaatje geef je weer door de link te veranderen in de voorbeeld url, dus door deze link in de browser in te voeren, krijg je de avatar van Pieter: http://bovenlader.no-ip.com/test.php?ur ... evaart.gif Ik ben het ermee eens dat het makkelijker werd wanneer de code het volgende geweest zou zijn: Code: Select All Code<? print $_GET['url']; ?>
Want in dát geval, kun je inderdaad zaken invoeren als javascript.alert('ongewenste alert!! haha');' En misschien nog wel ergere dingen. Overigens zijn daar ook weer vrij makkelijk maatregelen voor om dat probleem op te heffen, anders kon een forum als deze niet bestaan. Nou, stuur me maar een mailtje als 't gelukt is; of zet 't op de frontpage van mijn website :) PS: als je denkt dat het voorbeeld niet 'eerlijk' is, dan kun je hier uitleggen waarom niet; volgens mij is de situatie namelijk exact vergelijkbaarIk ben ook even aan het knutselen geweest en heb deze toevoeging gedaan:
Code: Select All Codefunction remotefiletoobig($file,$maxbytes) { // $maxbytes; // in bytes // Open the file, but only read maximum size $fp = fopen($file, "r"); $first_file_size_read = fread($fp, $maxbytes + 1); fclose($fp); return (strlen($first_file_size_read) > $maxbytes); }
en in 'function user_avatar_url' zelf:
Code: Select All Codeif(remotefiletoobig($avatar_filename,12288)){//12288=12kb $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br /> bestand te groot' : 'bestand te groot'; return; }
Het is een beetje een statische code maar ik vondt het zo wel prima.
Deze code stelt perken aan de remote plaatjes ofwel de de url plaatjes van een andere server.
Om de site niet te traag te maken mag je nu plaatjes tot en met 12 kb gebruiken.
ik heb op mijn site een probleempje, als ik een nieuw onderwerp begin en hem post zonder een onderwerp op te geven krijg je een error tekst (net als bij een fout bij je avatar.
Nu is de achtergrond hiervan bij mij zwart, terwijl ik alles al bij langs ben geweest (in de styleschheets).
Weten jullie waar ik het moet vinden? Dus de achtergrond van de error teksten bij posten of bij het uploaden van een avatar.
Stylescheets haha leuke benaming; maar wat is je site? adtempusvitae.nl?
Ik heb even voor je gekeken, en uit de bron (rechtermuisknop >> bron weergeven) blijkt dat het om de volgende code gaat.
Code: Select All Code<table class="forumline" width="100%" cellspacing="1" cellpadding="4" border="0"> <tr> <td><table width="100%" cellspacing="0" cellpadding="1" border="0"> <tr> <td>&</td> </tr> <tr> <td align="center"><span class="gen">Je moet een titel opgeven als je een nieuw onderwerp opent.</span></td> </tr> <tr> <td>&</td> </tr> </table>
Twee zaken zijn hierin 'verdacht' namelijk de class 'gen' en de class 'forumline'. Ik heb ook even je stylesheet gedownload, om te kijken wat de oorzaak is, en het blijkt dat je de volgende code hebt geplaatst bij de class forumline.
als je dan een tabel maakt (wat in de bovenstaande code gebeurt), dan past hij hierop de forum-line class toe zoals deze gedefinieerd is in de stylesheet, dus wordt de achtergrond zwart.
Oplossing? >> Verwijder class="forumline" uit (waarschijnlijk) posting.php.
:lol:
Allemaal leuk en aardig jongens, maar zullen we het gewoon even over de nieuwe avatar mogelijkheden hebben? ja? goedzo :)
En dan lijkt het opeens weer zo simpel :oops:
Maar idd geval bedankt!
Ik kon me dit topic nog herinneren, toen ik dit las:
http://www.nu.nl/news.jsp?n=314579&c=50blijkbaar kan je toch met php een site overnemen.
Ik vermoed dat hier eerder validatie via JavaScript is toegepast, gezien de hoeveelheid JavaScript er op de site gebruikt wordt. Op die manier kun je precies zien waarop gecontroleerd wordt (bijvoorbeeld of het einde van de tekst op jpg of gif endigt etc...) en doordat je zoveel kunt zien, zie je ook precies waar eventuele foutjes zitten; om hier eens lekker misbruik van te maken. Via phpfuncties als file_get_contents() kun je dan idd de gegevens achterhalen van de hele site (als je interne links gebruikt en als je weet in welke hoofdscipts de wachtwoorden staan.) Daar kom je natuurlijk gauw genoeg achter; dat zal 2 of 3 keer proberen zijn, en dan weet je het.
Overigens staat op nu.nl dat er wordt gecontroleerd of iets een plaatje is, maar dat is niet eens waar. Het script controleert alleen of het eindigt op jpg of gif; dus je kunt nu alsnog ongeldige plaatjes invoeren. Ik zeg: als je iets doet, doe het dan ook meteen goed.
Je kunt via php makkelijk eerst controleren of het (externe) bestand echt een plaatje is (via getimagesize, kijken of het mime type van de opgegeven link idd "image" is). Vervolgens moet je het ingevoerde zó behandelen dat het nóóit zo kan zijn dat dat wat ingevoerd is door gebruikers, zondermeer als phpcode kan worden uitgevoerd. Dan kun je inderdaad beter direct je wachtwoorden op de frontpage zetten.
Er is een functie die je kunt gebruiken zodat je zeker weet dat de ingevoerde code niet voor misbruik gebruikt kan worden, en dat is htmlspecialchars(). Die zet alle 'special chars' als ' " < > etc. om in html tekens, zodat het geen phpscript meer is, maar de uitvoer nog 't zelfde lijkt. Ik weet niet of in het onderschrift en in het avatarscript hiervan gebruik gemaakt wordt (niet gekeken), maar dat is opzich wel handig om te doen, als extra zekerheid.
Zeg Webcie,
Mij is opgevallen dat er iemand is met een avatar van 100x100 pixels. Nou maakt dat me in principe niet zoveel uit, maar kan ik dan ook ergens ontheffing van de 80x80 regel aanvragen?
Ohw je zult mij wel bedoelen. Ik vond uhm ook al wat groter dan die van de rest. Ik heb hem gewoon via een url geupload. Ik heb dat nog nooit gedaan, maar als dit niet mag haal ik um wel weer af.
Als het wel mag dan moet iedereen effe bij het tabblad van zijn MSN messenger kijken met die voetbal erop. Daar vind je nog meer heineken-avatars. En sowieso staan er wel lachen dingen op.
if($username != 'Robbert'; { $action='deny avatar'; } else { $action='accept avatar'; }
:lol: Ik krijg namelijk wel foutmeldingen bij dezelfde avatar...Ik zag laatst trouwens nog iets wat ik niet wist, en wat voor gsvnet ook wel es handig zou (kunnen) zijn. Ik zie namelijk vaak avatars, waarbij de link niet klopt, of niet werkt, en je dus zo'n rood kruisje krijgt, omdat de avatar niet wil laden.
Ter voorkoming van de gewraakte roode kruisjes bij bijvoorbeeld avatars (links die niet werken) heeft html het volgende ingebouwd, waarmee je een alternatief plaatje kunt opgeven, die geladen wordt als het 'normale plaatje' niet blijkt te kunnen laden...
Code: Select All Code<IMG src="mijnplaatje.gif" onError="this.src='http://www.gsvnet.nl/plaatjes/alternatiefplaatje.jpg'">
Als 'mijnplaatje.gif' dus niet bestaat, probeertie alternatiefplaatje.jpg te laden. Zo heb je dus altijd óf het bedoelde plaatje, of een plaatje van gsvnet zelf...
Zie maar wat jullie ermee doen...
Ikke niks. Gewoon zorgen dat je plaatje beschikbaar blijft :wink:
Maar die avatar van Robbert is dus een uitzondering/vergissing?
Dat lijkt me wel. :? :roll:
Opzich zou de lengte/breedte best wel groter kunnen worden gemaakt zie ik nu overigens. In ieder geval wordt bij mij de breedte van de kolom waar de avatar in staat bepaald door de tekst: "Lid sinds: 31 Jan 2003" die veruit breder is dan 80 pixels.. Daar moet de Webcie maar eens over na gaan denken ;)
Ja tzou kunnen dat dat ding bij 'per ongeluk' gelukt is, maar daarnet deed hij het al niet meer. Ik weet niet of er is 'ingegrepen' of dat er alsnog gewoon geen mogelijkgheid toe is
volgens mij werkt dat avatar scriptstukje alleen bij het uploaden, als Robbert dan net zijn avatar had geupload toen het script nog niet in werking was gesteld zou het kunnen dat zijn avatar wel weergegeven werdt maar naderhand niet meer geupload kon worden (omdat het script dan zei dat de avatar te groot was)
Ja, doen! :D