gnuheter-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnuheter-dev] [Bug #2667] ampersand() i mainfi le.php använder felaktig


From: nobody
Subject: [Gnuheter-dev] [Bug #2667] ampersand() i mainfi le.php använder felaktig algoritm
Date: Sun, 09 Mar 2003 12:12:07 -0500

=================== BUG #2667: LATEST MODIFICATIONS ==================
http://savannah.nongnu.org/bugs/?func=detailbug&bug_id=2667&group_id=2176

Changes by: Patrik Wallström <address@hidden>
Date: Sun 03/09/03 at 18:12 (Europe/Stockholm)

            What     | Removed                   | Added
---------------------------------------------------------------------------
          Resolution | None                      | Fixed
              Status | Open                      | Closed




=================== BUG #2667: FULL BUG SNAPSHOT ===================


Submitted by: schultz                 Project: Gnuheter                     
Submitted on: Thu 02/27/03 at 15:55
Category:  Bug                        Severity:  5 - Major                  
Bug Group:  None                      Resolution:  Fixed                    
Assigned to:  None                    Status:  Closed                       

Summary:  ampersand() i mainfile.php använder felaktig algoritm

Original Submission:  
Så här ser funktionen ampersand() ut i sitt nuvarande skick:
function ampersand($str) {
        $str = ereg_replace('&', '&amp;', $str);
        $str = ereg_replace('&amp;([a-z]+;)', '&\\1', $str);

        return $str;
}

Uppenbart vill man tillåta HTML-entities, men man är allt för restriktiv. Även 
&Auml; för stora Ä eller &frac14; för en fjärdedel utesluts, vilket även 
skrivsätt som &#xE6; (æ) och andra görs.

Föreslagen lösning:
function ampersand($str) {
  $str = str_replace("&", "&amp;", $str);
  $str = eregi_replace("&amp;(#x?[0-9a-f]+;)", "&\\1", $str);
  $str = eregi_replace("&amp;([a-z][a-z0-9]+;)", "&\\1", $str);

  return $str;
}

Skilnaden är dels case-sensitive, dels att även &#x14B; (fonetiskt ng-tecken 
som i "ring") och &frac34; (tre fjärdedelar) tillåts.

Buggar i den nya algoritmen: även &#15B; tillåts, trots att hexadecimala tal 
kräver ett x framför; och att den är lite för restriktiv gällande entities av 
typen &sup3; (upphöjd trea) som enligt XML-standarden även får innehålla 
bindestreck, punkter, med mera. Ingen av de i HTML 4 definierade entities gör 
detta, vilket borde göra mitt antagande säkert.



No Followups Have Been Posted


CC list is empty


No files currently attached


For detailed info, follow this link:
http://savannah.nongnu.org/bugs/?func=detailbug&bug_id=2667&group_id=2176




reply via email to

[Prev in Thread] Current Thread [Next in Thread]