html code probleem na wijziging via CMS
Als ik in het CMS systeem naar de source code kijk, zie ik geen vreemde zaken en kan de oorzaak niet ontdekken.
Als ik de pagina in mijn browser open en de source code bekijk, dan zie ik bijvoorbeeld:
Quote:
<p class=\"broodtekst\" align=\"justify\"><img src=\"afbeeldingen/---.gif\" align=\"middle\" width=\"380\">...
Met de tekst tussen de '\' in het rood in de html code. Dit is bij alle dergelijke verwijzigingen. Op pagina's waar ik niets in het CMS heb verwijderd, werken ze verwijzingen gewoon.
Daar lijkt er dus iets fout te gaan. In de source code in het CSM systeem staat het teken '\' er niet en staat er dus gewoon:
Quote:
<p class="broodtekst" align="justify"><img src="afbeeldingen/---.gif" align="middle" width="380">...
Heeft er iemand een idee wat er aan de hand is?
Gewijzigd op 13/11/2013 13:22:30 door Nick Klein
Er kan hier bewust voor worden gekozen d.m.v. bijv addslashes(), maar het kan ook een server instelling zijn bijv magic quotes
Dit kunnen wij niet voor jou voorspellen, dus je zal in je code moeten kijken of tekst na het opslaan door een bepaalde functie wordt gehaald.
Je zou get_magic_quotes_gpc() kunnen gebruiken om te zien of deze functie op jou server aan staat (true).
Ik gebruik Firefox en die maakt het in de source code rood omdat die vindt dat er iets mis is met dat deel van de html code. Ik kwam er ook zojuist achter dat Firefox de reden aangeeft als je er met je muis overheen beweegt. Firefox zegt:
Quote:
Quote in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
Ik heb geen idee wat dit betekent...
>> In het CMS systeem veranderde ik het telefoonnummer op onze website op een aantal pagina's
In een CMS zit de inhoud in de database. De CSM zorgt er voor dat de juiste inhoud gelezen wordt op de DB afhankelijk van (voornamelijk) de URL (de $_GET variabelen).
Waar staat dat telefoonnummer? Hoe bedoel je, je hebt dat telefoonnummer veranderd?
Maar vooral: welk CSM systeem?
Als je dat zelf geschreven hebt, willen we graag de code zien.
Als je die ergens online gevonden hebt, geef dan een link naar de website van die CMS
Het CSM systeem is een door het bedrijfje dat de website jaren terug heeft gemaakt zelf ontwikkeld systeem. Heeft altijd goed gewerkt om via het CMS systeem een stukje tekst op onze website te veranderen. Ik moest nu het telefoonnummer veranderen. Dus logte in op het CMS systeem en opende de pagina met het telefoonnummer. In het CMS systeem kun je kiezen voor "View Source" en dan zie je html code en kun je daarin je tekstwijziging aanbrengen. Dit i.p.v. dat je vanuit bv. Word plakt in de opgemaakte tekst en zo mogelijk de opmaak verstoor. Dit heb ik per ongeluk niet zo gedaan en nu lijkt inderdaad de opmaak verstoort. Een andere mogelijke oorzaak is dat toevallig de website door het hosting bedrijf naar een andere server is verhuisd en dat hier iets niet goed is gegaan i.c.m. mijn wijziging via het CSM systeem.
Aangezien dit laatste dus wellicht toch op iets wijst m.b.t. de server: hoe kan de suggestie van Michael om te kijken of de functie get_magic_quotes_gpc() op de server aanstaat testen?
Zoals jullie merken weet ik er niet zoveel van. Ik probeerde het al via www.domein.nl/get_magic_quotes_gpc() maar dat werkte niet.
Gewijzigd op 13/11/2013 14:37:38 door Nick Klein
Nick Klein op 13/11/2013 14:16:16:
Bedankt Michael. Het is volgens mij niet een server instelling. Want de andere pagina's op dezelfde website hebben het probleem niet.
Dit kun je makkelijk uittesten door het volgende script te openen op je server
Deze geeft 1 als deze functie aan staat en 0 als deze uit staat.
Deze functie doet niks anders dan elke " en ' veranderen in \" en \'
Nick Klein op 13/11/2013 14:16:16:
Ik gebruik Firefox en die maakt het in de source code rood omdat die vindt dat er iets mis is met dat deel van de html code. Ik kwam er ook zojuist achter dat Firefox de reden aangeeft als je er met je muis overheen beweegt. Firefox zegt:
Ik heb geen idee wat dit betekent...
Quote:
Quote in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
Ik heb geen idee wat dit betekent...
Dit betekent dat een atribuut geen quotes (") bevat.
Dus bij <a href=www.phphulp.nl title=php hulp>php hulp</a> zul je deze foutmelding krijgen omdat je om de title en de href quotes dient te gebruiken.
Jou quotes zijn nou ge-escaped waardoor ze niet worden uitgevoerd en dus gemist worden.
Je zal toch zelf in je code moeten gaan zoeken of ons een deel van je code geven. Mijn glazenbol heeft problemen vandaag.
Toevoeging op 13/11/2013 14:41:06:
Nick Klein op 13/11/2013 14:36:12:
Aangezien dit laatste dus wellicht toch op iets wijst m.b.t. de server: hoe kan de suggestie van Michael om te kijken of de functie get_magic_quotes_gpc() op de server aanstaat testen?
Zoals jullie merken weet ik er niet zoveel van. Ik probeerde het al via www.domein.nl/get_magic_quotes_gpc() maar dat werkte niet.
Zoals jullie merken weet ik er niet zoveel van. Ik probeerde het al via www.domein.nl/get_magic_quotes_gpc() maar dat werkte niet.
Inloggen op je server (FTP), nieuw bestand aanmaken, we noemen het voor het gemak magicq.php de volgende code erin plakken en openen in je browser (www.jewebsite.nl/magicq.php).
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if(get_magic_quotes_gpc()){
echo 'Deze functie staat aan';
} else {
echo 'Deze functie staat uit';
}
?>
if(get_magic_quotes_gpc()){
echo 'Deze functie staat aan';
} else {
echo 'Deze functie staat uit';
}
?>
Bedankt Michael en Kris. Het probleem bleek inderdaad Magic Quotes. De provider heeft dit opgelost door magic quotes uit te zettten en nu werkt het weer. Bedankt voor de hulp!
Nick Klein op 13/11/2013 16:36:32:
Bedankt Michael en Kris. Het probleem bleek inderdaad Magic Quotes. De provider heeft dit opgelost door magic quotes uit te zettten en nu werkt het weer. Bedankt voor de hulp!
Fijn dat het is opgelost! Graag gedaan
Nick Klein op 13/11/2013 16:36:32:
Bedankt Michael en Kris. Het probleem bleek inderdaad Magic Quotes. De provider heeft dit opgelost door magic quotes uit te zettten en nu werkt het weer. Bedankt voor de hulp!
Let wel op dat zodra je magic quotes uit hebt gezet je eigenlijk de mogelijke laatste barriere weggehaald hebt voor het hacken van je cms DMV SQL Injection. Zolang er prepared statements in de database queries zitten of als mysql_real_escape_string wordt gebruikt is er echter niets aan de hand.
Ruben Vincenten op 13/11/2013 23:37:23:
Let wel op dat zodra je magic quotes uit hebt gezet je eigenlijk de mogelijke laatste barriere weggehaald hebt voor het hacken van je cms DMV SQL Injection. Zolang er prepared statements in de database queries zitten of als mysql_real_escape_string wordt gebruikt is er echter niets aan de hand.
Nick Klein op 13/11/2013 16:36:32:
Bedankt Michael en Kris. Het probleem bleek inderdaad Magic Quotes. De provider heeft dit opgelost door magic quotes uit te zettten en nu werkt het weer. Bedankt voor de hulp!
Let wel op dat zodra je magic quotes uit hebt gezet je eigenlijk de mogelijke laatste barriere weggehaald hebt voor het hacken van je cms DMV SQL Injection. Zolang er prepared statements in de database queries zitten of als mysql_real_escape_string wordt gebruikt is er echter niets aan de hand.
Goed punt en hier moet je altijd goed opletten. Maar het script draaide hiervoor ook al op een server met deze instelling uit (voor de verhuizing werkte het immers wel) dus dan was hij ook al kwetsbaar.
Altijd even checken of elke user input (POST, GET) is voorzien van mysql(i)_real_escape_string() htmlentities() htmlspecialchars() o.i.d.