zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Option lässt sich nicht auswählen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #11 (permalink)  
Alt 30.08.2012, 00:43
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard

ist das so auch möglich mich vor der sql-Injection zu schützen?
PHP-Code:
$filters = array(
  
"css" => array(
    
"filter"=>FILTER_CALLBACK,
    
"flags"=>FILTER_FORCE_ARRAY,
      
"options"=>array(
        
"strtolower",
        
"convertSpace",
        
"get_magic_quotes_gpc",
        
"stripslashes"
      
)
    ),
  
"slied" => array(
    
"filter"=>FILTER_CALLBACK,
    
"flags"=>FILTER_FORCE_ARRAY,
      
"options"=>array(
        
"strtolower",
        
"convertSpace",
        
"get_magic_quotes_gpc",
        
"stripslashes"
      
)
    ),
  
"js" => array(
    
"filter"=>FILTER_CALLBACK,
    
"flags"=>FILTER_FORCE_ARRAY,
      
"options"=>array(
        
"strtolower",
        
"get_magic_quotes_gpc",
        
"stripslashes"
      
)
    ),
  
"img" => array(
    
"filter"=>FILTER_CALLBACK,
    
"flags"=>FILTER_FORCE_ARRAY,
      
"options"=>array(
        
"strtolower",
        
"convertSpace",
        
"get_magic_quotes_gpc",
        
"stripslashes"
      
)
    ),
  
"ordner" => array(
    
"filter"=>FILTER_VALIDATE_INT,
      
"options"=>array(
          
"min_range"=>1,
          
"max_range"=>4
      
)
    )
);
var_dump(filter_var_array($_POST$filters));
function 
convertSpace($string)
  {
  return 
str_replace(" ""_"$string);
  } 
Kann man das auch noch kürzen, also nicht für jedes Feld wiederholen?
Kann man auch Default Werte in Options einfügen?

MfG

Geändert von gabischatz (30.08.2012 um 01:15 Uhr) Grund: Funktion noch hinzugefügt
Mit Zitat antworten
Sponsored Links
  #12 (permalink)  
Alt 30.08.2012, 01:54
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

In Sachen SQL-Injection: Ich würde die Anwendungsbereiche nicht vermischen. Bei den Filtern geht es darum, Eingaben auf Korrektheit zu prüfen. SQL-Injections sind eine Kontextwechselproblematik, die mit den Daten an sich nichts zu tun hat. So was wird erst relevant, wenn die Daten in einen anderen Anwendungskontext (Einsetzen in SQL-String, Ausgabe in HTML, Ausgabe in einem PDF, …) überführt werden müssen. Dieser Anwendungskontext sollte aber erst so spät wie möglich ausgewählt werden können.

- Artikel:Kontextwechsel

Vielleicht ein anschauliches Beispiel: Filtern/Validierung ist so was wie Wecker stellen, Zähne putzen, Frühstücken, passend aus dem Haus kommen. Aufbereitung der Daten zur Verhinderung von SQL-Injections wäre so was wie Tennisklamotten anziehen. Wenn du die Tenniskleidung zu einem Teil der morgendlichen Routine machst, bist du für Anwendungskontexte wie „Arbeit“ oder „Einkaufen“ falsch vorbereitet. „Ach ja, ich muss ja zur Arbeit.“ → Tenniskleidung aus, Arbeitskleidung an.

Da ist es eben sinnvoller, die passende Kleidung erst auszuwählen, wenn das Ziel klar ist.



Edit: Zu den Mail-Adressen:

Ja, bei E-Mail-Adressen ist Validierung besonders knifflig, wenn man es völlig korrekt machen will. Aber auch dann ließe sich problemlos gibtesnicht@hastenichtgesehen.example.org als Adresse angeben.

Auch hier würde ich mich nach Möglichkeit darauf beschränken, Eingabefehler abzufangen und mit Regeln zu arbeiten wie: „Es muss ein ‚@‘ auftauchen und davor und dahinter müssen Zeichen stehen.“ Das fängt krasse Eingabefehler ab und trägt der Tatsache Rechnung, dass problemlos eine Adresse eingetragen werden könnte, die formal korrekt aber inhaltlich unsinnig ist.

Geändert von mermshaus (30.08.2012 um 02:21 Uhr)
Mit Zitat antworten
Sponsored Links
  #13 (permalink)  
Alt 30.08.2012, 09:02
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard

Wäre dann so eine Funktion sinnvoller?
PHP-Code:
/**   _CheckStringForSQL() liefert bei auffinden von $BlackList - Eintrag true zurück **/
 
if (_CheckStringForSQL($_POST[css])){ //true
     
echo  '<br /><strong style="color: #FF0000;">true</strong> wurde zur&uuml;ckgegeben:'.$erg ;
 }else{ 
//false
     
echo  '<br /><strong style="color: #FF0000;">false</strong> wurde zur&uuml;ckgegeben:'.$erg ;
 }

function 
_CheckStringForSQL($str){
  
$BlackList = array("--"";""/*""*/""@@""@",
                     
"drop","insert","create","select",
                     
"table""update","union","from","where");

  if (!empty(
$str) ){
    
$CheckStringForSQL false;
  }elseif ( 
strcmp($str"") == ){
       
$CheckStringForSQL false;
  }

  
$lstr strtolower($str);

  foreach (
$BlackList as $s  ){
    if ( 
strripos ($lstr$s) <> ){
      return 
true;
    }elseif ( 
stristr ($lstr$s) <> ){
      return 
true;
    }
  }
  return 
$CheckStringForSQL;
// end function _CheckStringForSQL 
und welche Begriffe müssten ins Array mit aufgenommen werden?
MfG

Geändert von gabischatz (30.08.2012 um 12:50 Uhr) Grund: Semikolons haben gefehlt
Mit Zitat antworten
  #14 (permalink)  
Alt 30.08.2012, 19:47
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Für welchen Anwendungsfall denn? Schutz vor SQL-Injections? Dafür ist einzig und allein der Escaping-Mechanismus des jeweiligen Datenbank-Adapters sinnvoll und notwendig.

mysql (veraltet): PHP: mysql_real_escape_string - Manual
mysqli: PHP: mysqli::real_escape_string - Manual oder prepared statements
pdo: PHP: PDO::quote - Manual oder prepared statements
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Styleswitcher - Ausgewählte Option ändert sich bei neuem Seitenaufruf ChOpSueY! Javascript & Ajax 4 31.08.2010 21:29
2x select boxen sollen option tauchen.(Javascript) Don Roberto Javascript & Ajax 4 28.12.2009 21:01
dropdown - option feld breite.. monran CSS 3 12.11.2009 17:52
Problem mit dem Ausblenden von Option Elemente im Safari|IE marius-schneider Javascript & Ajax 0 20.08.2009 12:30
jQuery: Select option und click Sonny Lane Javascript & Ajax 3 17.12.2008 10:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:37 Uhr.