[PHP] anti script script

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 16:11

Japie.G

Colour Classic

Topicstarter
Hallo!

Voor een paar luitjes ws ik bezig een site te maken(www.b-slapped.nl), ben beginner op gebied van PHP. Nu dacht ik dat ik er aardig uit was gekomen. Totdat de site op volkomenkut.com gelinked werd. Uiteraard zorgt dat voor de nodige bezoekers. Toen was er iemand die op het leuke idee kwam om scripts via het gastenboek de site binnen te werken. gevolg: alles op de site werd geredirect naar andere sites.

Nu wil ik dit natuurlijk voorkomen. Nu ben ik door veel zoeken erachter gekomen dat de volgende functie hiervoor beschikbaar is:

$bericht = htmlspecialchars($bericht);

Dit heeft alleen tot gevolg dat alle <BR> tags ook niet meer werken. DIt heb ik als volgt opgelost:

code:
1
2
3
$bericht=nl2br($bericht);
$bericht = htmlspecialchars($bericht);
$bericht = str_replace("&lt;br /&gt;","</br>",$bericht);


Kortom, gewoon weer keihard terug gevormd.

Nu is mijn vraag of dit de oplossing bied voor het probleem, of dat ik nog op meer dingen moet letten. Ik geen zin in nog een scripter in mn gastenboekie, aangezien we veel mensen willen laten meegenieten van het videoclipje :P

Renault Scenic E-Tech EV - PV-Output


Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 20-09 23:52
Als je het nou omdraait en dit doet:

code:
1
2
$bericht=htmlspecialchars($bericht);
$bericht=nl2br($bericht);


:X

Acties:
  • 0 Henk 'm!

  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 16:11

Japie.G

Colour Classic

Topicstarter
heb ik geprobeerd, maar dat werkt niet...

maar mijn vraag is eigenlijk of het op deze manier wel veilig is, of dat er nu nog mogelijkheden te verzinnen zijn om te scripten op de plek waar ik dat niet wil

Renault Scenic E-Tech EV - PV-Output


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Nu online
In $bericht zal geen script meer kunnen komen. Of de rest van je script veilig is kunnen we zonder code natuurlijk niet ruiken. De code uit de startpost gaat btw niet werken
PHP:
1
2
3
$bericht = str_replace("&lt;br /&gt;","</br>",$bericht);
//moet dan zijn
$bericht = str_replace("&lt;br /&gt;","<br />",$bericht);


Het hoe en waarom je dit zo wil snap ik echter niet. Waarom zou je je bezoekers geen HTML toestaan maar ze wel hard <br />'s in laten kloppen? Naar mijn inzicht is het netter om gewoon enters te converteren naar breaks. Op de manier die BaróZZa hierboven aangeeft. Of zo u wil:
PHP:
1
2
$bericht = htmlspecialchars($bericht);
$bericht = str_replace("\n", "<br />\n", $bericht);

[ Voor 22% gewijzigd door T-MOB op 15-04-2005 10:42 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Nu online

Cyphax

Moderator LNX
Let altijd op je querystring bijvoorbeeld. Zorg dat je nooit direct waarden uit je querystring in je script gebruikt, zoals een query samenstellen met een waarde uit die querystring want dan heb je weer een potentieel beveiligingslek. Kijk na waar je gebruikers input kunnen geven en vang dat af.

Als je die HTML zo omvormt zit je veilig, want een PHP script begint met een <?(php) tag en die vang je alvast af. Dan kan je alvast geen script 'beginnen' en code wordt derhalve gewoon als tekst behandeld.

[ Voor 13% gewijzigd door Cyphax op 15-04-2005 10:43 ]

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
Waarom zorg je er niet voor dat mensen ubb style tags moeten gaan gebruiken en ram je eerst een stript_tags() overheen. Die UBB tags kan je dan dmv met preg_replace weer in toegestaande html code.

Strava | Runkeeper | Endomondo (mijn leikr uploads)

Pagina: 1