[php] parse probleem

Pagina: 1
Acties:

  • duderuud
  • Registratie: Mei 2000
  • Laatst online: 07:59

duderuud

Sliden is koel

Topicstarter
Dag mensen,

Ik heb een eigen forum via vriend NielsOnline "verkregen", maar er zit een 'bug' in.

Als ik een bericht type, en ik zet er een \ in, dan zie je in een post [b]\[/b] staan.

Ook een "blablabla" wordt aangepast naar \"blablabla\" (of zoiets)

Ik heb gevonden waar het 'm in zit:
PHP:
1
2
3
<?
$text = str_replace("\\", "&amp;amp;#92;", $text);
?>

Hoe kan ik het zo aanpassen dat de \ gewoon op het scherm komt, en bij een " dat de \ er niet autom. bijgezet wordt?

Ben een leek, dus relax een beetje:)

Motor-Forum.nl


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 08-09 08:43

Bergen

Spellingscontroleur

Dat doet het domme forum bij ons op het werk ook. Ze hebben net een forum geintroduceerd en vandeweek vonden we uit dat je gewoon html-tags in de tekst kunt gooien, dat werkt gewoon. We hadden al het idee om een nieuw topic aan te maken met als titel: </body> maar dat doen we maar niet... We willen nou ook weer niet gebanned worden van het forum. Maar ondanks dat er inderdaad tags in de html komen te staan als <font face=\"tahoma\"> werkt het toch gewoon. Wat heel apart is, is dat de letterkleur altijd lichtgroen wordt als je een kleur opgeeft. <font color="#FF0000"> wordt lichtgroen. Waarom dat zo is weten we nog niet.

Zijn bovenstaande dingen ook allemaal op jouw forumscripts van toepassing??

Verwijderd

He

ik had laatst ook zo iets en dat heb ik op deze manier opgelost: http://www.php.net/manual/nl/function.stripcslashes.php

<?
$text = strip_cslashes($text);
?>

ik weet t nie zeker meer aangezien ik me bedje nog moet opzoeken :) PHP is verslavend >:)

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op donderdag 18 oktober 2001 06:59 schreef reg10 het volgende:
He

ik had laatst ook zo iets en dat heb ik op deze manier opgelost: http://www.php.net/manual/nl/function.stripcslashes.php

<?
$text = strip_cslashes($text);
?>

ik weet t nie zeker meer aangezien ik me bedje nog moet opzoeken :) PHP is verslavend >:)
of gewoon: http://www.php.net/manual/nl/function.stripslashes.php


string stripslashes (string str)


Geeft een string met backslashes gestript. (\' wordt ' enzovoort.) Dubbele backslashes worden enkele backslashes.

If it ain't broken it doesn't have enough features


Verwijderd

Dit is nou niet bepaald een bug.

Dit is om te voorkomen dat mensen je forum laten crashen cq hacken.

Je kunt anders namelijk met de zogenaamde speciale tekens het complete PHP-script veranderen.

Ik heb hier een artikel over gevonden op PHP Freakz:
Het gebruik van speciale tekens
Een van de belangrijkste punten. Als je gebruikersinput gebruikt (bijvoorbeeld bij een formulier) is het van het grootste belang dat deze input gecontroleerd wordt voordat deze gebruikt wordt. Een belangrijk voorbeeld hier is het gebruik van user input in database queries. Laten we bijvoorbeeld eens het voorbeeld nemen van gebruiker-validatie. Neem het volgende script:
PHP:
1
2
3
4
5
6
7
8
9
<?
  // $user en $password zijn door de gebruiker via formulier of wat dan ook opgegeven 
  $result = mysql_query("SELECT * FROM auth WHERE user='$user' AND password='$password'"); 
  if ($result &amp;amp;amp;&amp;amp;amp; mysql_num_rows($result)) { 
    // Login gelukt 
  } else { 
   // Login niet gelukt 
  } 
?>

Als zowel user en password correct is, zal de query 1 of meerde rows terug sturen (als het goed is maar 1, maar goed), in principe geen slechte manier van authenticatie (al is het misschien beter om de wachtwoorden eerst te versleutelen), maar het gebruikt ongecontroleerde user input! Als speciale tekens niet uitgefiltert worden kan de user bijvoorbeeld intypen:
code:
1
2
user: root'; SELECT * FROM auth WHERE 0
password: onbelangrijk

Als we dit nu in de query invullen krijgen we
code:
1
SELECT * FROM auth WHERE user='root'; SELECT * FROM auth WHERE 0 AND password='onbelangrijk'
Zoals je ziet is het erg prettig voor de hackers als dit 'escapen' van speciale tekens weg wordt gehaald :)


Waar staat dat forum?? :D

  • [ti]
  • Registratie: Februari 2000
  • Niet online
Zie ook [topic=294247]

Verwijderd

Dat is een setting in php.ini, maar het kan ook door een stukje php code erin te zetten, dat komt erin bij de volgende update...
Pagina: 1