Avatar

contains_invalid_string - Funktion macht Probleme (General)

by Micha ⌂, Tuesday, February 03, 2015, 18:35 (3364 days ago) @ Auge
edited by Micha, Tuesday, February 03, 2015, 18:43

Hi,

ich habe die Ursache gefunden. In der Hilfsfunktion contains_invalid_string wird die URL geprüft und abgelehnt. Leider passiert dies nicht auf der Grundlage, die sich Alex damals überlegt hatte, sondern eher durch Zufall. Die Funktion durchsucht die URL nach bösen[tm] Zeichenketten und lehnt diese dann u.U. ab. Konkret ist hier die Suche nach dem Substring file: das Problem, welches zufällig in der URL steht. Vermutlich wollte Alex verhindern, dass einer auf eine lokale Quelle referenziert und einen Link setzt - dies deutet zumindest der auskommentierte Part der Funktion an.

Um das Problem zu lösen, würde hier also das Entfernen von file: aus genannter Funktion reichen - dann wäre aber auch Intention hinter dem Verbot weg. Wenn es nur um das "Protokoll" file:// geht, könnte man ggf. einfach die Schrägstriche noch mit aufnehmen und hätte - sofern ich nichts übersehen habe - für beide Fälle eine Lösung.

Vielleicht sollte man es für die Wörter am Anfang auch mit einem regulären Ausdruck regeln. Etwas wie ^(javascript|file|data|jar)\: könnte da bereits helfen in Verbindung mit preg_match.

Gruß Micha


functions.inc.php

/**
 * help function for is_valid_url() and is_valid_email()
 *
 * @param string $string
 * @return bool
 */
function contains_invalid_string($string)
 {
  $invalid_strings = array('<','>','\'','"','data:','file:','javascript:','jar:','expression(');
  foreach($invalid_strings as $invalid_string)
   {
    if(strpos(strtolower($string), $invalid_string)!==false)
     {
      return true;
     }
   }
  #if(substr($string, 0, 5) == 'data:' || substr ($string, 0, 5) == 'file:' || substr ($string, 0, 11) == 'javascript:' || substr ($string, 0, 4) == 'jar:')
  # {
  #  return false;
  # }
  return false;
 } 

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences


Complete thread:

 RSS Feed of thread