> -----Oorspronkelijk bericht-----
> Van: John W. Holmes [mailto:[EMAIL PROTECTED]
> Verzonden: vrijdag 21 november 2003 14:38
>
> Wouter van Vliet wrote:
> >John W. Holmes
> >>Troy S wrote:
> >>>What is the best way to remove the characters from strings that may
> >>>cause security problems?  Namely, `, ', ", <, >, \ and all non-printing
> >>>strings.  Did I miss any?  Thanks.
> >>
> >>Why do you need to remove them? So I can't type <grin>? Is that a
> >>security violation? All you need to do is use htmlentities() and/or
> >>addslashes() to protect data being displayed or entered into a database.
> >>
> > If you're worried about HTML code being entered (guess from
> desire to strip
> > <, > and /) and messing up your site's layout, you might wanna call
> > strip_tags($String, $AllowedTags); where $AllowedTags is a string like
> > '<b><u><i>' if you want to allow bold, underline and italics.
>
> You could do this if you want to allow cross site scripting
> vulerabilities on your site:
>
> Hello <b onmouseover="alert('hi');">you</b>.
>
> And prevent such evil text as "<grin>" or "<foo>"...
>
> --

Let's make this personal: what would be your answer if I would advice the
friendly person to do this:

<?php
(..) $Content holds the string that you would want to be safe

# Create an array with allowed tags
$Allowed = Array('b', 'u', 'i', 'grin', 'foo');

# Compose var to send to strip_tags
$AllowedTags = '';
foreach($Allowed as $Tag) $AllowedTags .= '<'.$Tag.'>';

# Strip tags
$Content = strip_tags($Content, $AllowedTags);

# Make tags SAFE
$Content = preg_replace('/<('.join($Allowed, '|').')([^>]+)>/', '<$1>',
$Content);
?>

Your turn !

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to