Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 10:42

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



$_GET absichern - Problem

Discussion on $_GET absichern - Problem within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
lnqlorlouz's Avatar
 
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
Lightbulb $_GET absichern - Problem

Hallo,

und zwar möchte ich meine "Ranking-Liste" mittels $_GET ordnen.
/ranking.php?order=kills&sort=desc
Einmal kann man bei $_GET['order'] entscheiden und einmal bei $_GET['sort'].

Bei $_GET['sort'] ist es mir wichtig, dass man nur asc oder desc eintragen kann. Sonst wäre eine Injection ja möglich...
Habe das vorhin mal mit preg_match probiert, aber ich scheitert irgendwo...Und bei if auch...

PHP Code:
   {
     
$allowed = array('exp''kills''deaths''asc''desc');
    if( 
in_array($_GET['order'],$allowed))
   {
      
$order $_GET['order'];
   }
   else
   {
     echo(
"Something went wrong.");
   }
  } 
Weiß mir einer, wie ich nur bestimme Dinge zulasse die in dem Array stehen? Und falls es anders ist oder gar nichts eingetragen ist soll dort eine Fehlermeldung kommen.
Beispiel:
$sql = "Select * from wraccounts where headshots = $hs order by $order $sort limit $limit,20";
lnqlorlouz is offline  
Old 05/06/2014, 18:25   #2


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Du solltest dafür lieber einen POST nutzen, wenn du Bedenken hast das da jemand Unfug treiben könnte. Soweit ich informiert bin, werden POST Parameter bei einer SSL Verbindung ebenfalls verschlüsselt.

Ansonsten sollte das mit in_array gehen, hast du mal geprüft ob order überhaupt einen Wert hat?
Mostey is offline  
Thanks
1 User
Old 05/06/2014, 18:29   #3
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
Die einfachste Möglichkeit wäre über real escape strings die Eingaben zu maskieren oder gleich über PDO prepared statements benutzen.

Dein Beispiel funktioniert bei mir
PHP Code:
<?php
$allowed 
= array("test""sth""kill");

if(
in_array($_GET['order'], $allowed)) {
    echo
'erlaubt';
}
else {
    echo
'Fehler';
}

?>
NotEnoughForYou is offline  
Thanks
1 User
Old 05/06/2014, 18:44   #4
 
pr0Cellarum's Avatar
 
elite*gold: 60
Join Date: Nov 2013
Posts: 58
Received Thanks: 26
Der Code funktioniert. Jedoch solltest du a) escapen und b) den Code nochmal überdenken. Momentan würde auch der Parameter 'sort' mit einem String 'kills' validiert werden.

PHP Code:
    // je nach skills direkt prepared statements anschauen
    
$order mysql_real_escape_string($_GET['order']);
    
$sort  mysql_real_escape_string($_GET['sort']);
    
    
$orderWhitelist = array('asc''desc');
    
$sortWhitelist  = array('exp''kills''deaths');

    if(empty(
$order) or !in_array($_GET['order'], $orderWhitelist)) {
        
// set default or print error
    
}

    if(empty(
$sort) or !in_array($_GET['sort'], $sortWhitelist)) {
        
// set default or print error
    
}
    
    
// process 
pr0Cellarum is offline  
Thanks
1 User
Old 05/06/2014, 18:50   #5
 
lnqlorlouz's Avatar
 
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
Quote:
Originally Posted by NotEnoughForYou View Post
Die einfachste Möglichkeit wäre über real escape strings die Eingaben zu maskieren oder gleich über PDO prepared statements benutzen.

Dein Beispiel funktioniert bei mir
PHP Code:
<?php
$allowed 
= array("test""sth""kill");

if(
in_array($_GET['order'], $allowed)) {
    echo
'erlaubt';
}
else {
    echo
'Fehler';
}

?>
Ja habs grad bemerkt...
lnqlorlouz is offline  
Reply


Similar Threads Similar Threads
Wie realisiere ich 2 $_GET Abfragen in einem Link?
10/28/2013 - Web Development - 2 Replies
^this.
Haus absichern
06/18/2011 - Minecraft - 7 Replies
Hallo Leute, ich zocke mit 4 Freunden auf einem Hamachiserver und wir bauen uns alle ein Haus da die aber immer meine Woodblöcke abbauen will ich diese nun absichern also nur für mich abbaubar machen. Mir gehört der Server und ich suche jetzt ein Plugin dazu habe schon Worldguard aber komme damit nicht zu recht und wollte Fragen ob wer ein anderes Plugin kennt für Bukkit oder mir dabei helfen kann mit Worldguard.
value mit $_get festlegen
04/05/2010 - General Coding - 0 Replies
ich probiere grade ein vorher festgelegte get form ueber post zu uebermitteln meine idee war nun das <input type="hidden" name="hauptkate" value="<?php echo '$_GET'?> "> einzubauen in der post form und dies sollte dann als value den wert von choosekate nehmen
P-Server Absichern
03/02/2010 - Metin2 Private Server - 1 Replies
Guten Tag, wollte wissen ob und wie ich mein P-Server, bzw meine Datenbank sichern kan so, dass ich sie falls ich nen neuen Server machen wollte diese wieder benutzen kan. MFG



All times are GMT +1. The time now is 10:42.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.